| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package filesystem
- import (
- "io"
- "os"
- "path/filepath"
- "github.com/xtls/xray-core/common/buf"
- "github.com/xtls/xray-core/common/platform"
- )
- type FileReaderFunc func(path string) (io.ReadCloser, error)
- var NewFileReader FileReaderFunc = func(path string) (io.ReadCloser, error) {
- resolved_path,err:=filepath.EvalSymlinks(path)
- if err!= nil{
- return nil,err
- }
- return os.Open(resolved_path)
- }
- func ReadFile(path string) ([]byte, error) {
- reader, err := NewFileReader(path)
- if err != nil {
- return nil, err
- }
- defer reader.Close()
- return buf.ReadAllToBytes(reader)
- }
- func ReadAsset(file string) ([]byte, error) {
- return ReadFile(platform.GetAssetLocation(file))
- }
- func CopyFile(dst string, src string) error {
- bytes, err := ReadFile(src)
- if err != nil {
- return err
- }
- f, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY, 0o644)
- if err != nil {
- return err
- }
- defer f.Close()
- _, err = f.Write(bytes)
- return err
- }
|