| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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) {
- return os.Open(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 ReadCert(file string) ([]byte, error) {
- if filepath.IsAbs(file) {
- return ReadFile(file)
- }
- return ReadFile(platform.GetCertLocation(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
- }
|