mirror of
https://github.com/XTLS/Xray-core.git
synced 2024-12-24 14:39:49 +00:00
45 lines
940 B
Go
45 lines
940 B
Go
|
// +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
|
||
|
}
|