1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-11-16 09:26:21 -05:00

add asset location search

This commit is contained in:
vcptr 2020-08-17 18:56:01 +08:00
parent 0c72d72f46
commit bc008113b6
3 changed files with 29 additions and 6 deletions

View File

@ -20,3 +20,25 @@ func GetToolLocation(file string) string {
toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir) toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir)
return filepath.Join(toolPath, file) return filepath.Join(toolPath, file)
} }
// GetAssetLocation search for `file` in certain locations
func GetAssetLocation(file string) string {
const name = "v2ray.location.asset"
assetPath := NewEnvFlag(name).GetValue(getExecutableDir)
defPath := filepath.Join(assetPath, file)
for _, p := range []string{
defPath,
filepath.Join("/usr/local/share/v2ray/", file),
filepath.Join("/usr/share/v2ray/", 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
}

View File

@ -66,12 +66,6 @@ func getExecutableSubDir(dir string) func() string {
} }
} }
func GetAssetLocation(file string) string {
const name = "v2ray.location.asset"
assetPath := NewEnvFlag(name).GetValue(getExecutableDir)
return filepath.Join(assetPath, file)
}
func GetPluginDirectory() string { func GetPluginDirectory() string {
const name = "v2ray.location.plugin" const name = "v2ray.location.plugin"
pluginDir := NewEnvFlag(name).GetValue(getExecutableSubDir("plugins")) pluginDir := NewEnvFlag(name).GetValue(getExecutableSubDir("plugins"))

View File

@ -18,3 +18,10 @@ func GetToolLocation(file string) string {
toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir) toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir)
return filepath.Join(toolPath, file+".exe") return filepath.Join(toolPath, file+".exe")
} }
// GetAssetLocation search for `file` in the excutable dir
func GetAssetLocation(file string) string {
const name = "v2ray.location.asset"
assetPath := NewEnvFlag(name).GetValue(getExecutableDir)
return filepath.Join(assetPath, file)
}