mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
940 B
44 lines
940 B
// +build !windows |
|
|
|
package platform |
|
|
|
import ( |
|
"os" |
|
"path/filepath" |
|
) |
|
|
|
func ExpandEnv(s string) string { |
|
return os.ExpandEnv(s) |
|
} |
|
|
|
func LineSeparator() string { |
|
return "\n" |
|
} |
|
|
|
func GetToolLocation(file string) string { |
|
const name = "xray.location.tool" |
|
toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir) |
|
return filepath.Join(toolPath, file) |
|
} |
|
|
|
// GetAssetLocation search for `file` in certain locations |
|
func GetAssetLocation(file string) string { |
|
const name = "xray.location.asset" |
|
assetPath := NewEnvFlag(name).GetValue(getExecutableDir) |
|
defPath := filepath.Join(assetPath, file) |
|
for _, p := range []string{ |
|
defPath, |
|
filepath.Join("/usr/local/share/xray/", file), |
|
filepath.Join("/usr/share/xray/", file), |
|
} { |
|
if _, err := os.Stat(p); os.IsNotExist(err) { |
|
continue |
|
} |
|
|
|
// asset found |
|
return p |
|
} |
|
|
|
// asset not found, let the caller throw out the error |
|
return defPath |
|
}
|
|
|