Skip to content

Commit

Permalink
add asset location search
Browse files Browse the repository at this point in the history
  • Loading branch information
vcptr committed Aug 17, 2020
1 parent 0c72d72 commit bc00811
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 6 deletions.
22 changes: 22 additions & 0 deletions common/platform/others.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,25 @@ func GetToolLocation(file string) string {
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 = "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
}
6 changes: 0 additions & 6 deletions common/platform/platform.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
const name = "v2ray.location.plugin"
pluginDir := NewEnvFlag(name).GetValue(getExecutableSubDir("plugins"))
Expand Down
7 changes: 7 additions & 0 deletions common/platform/windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,10 @@ func GetToolLocation(file string) string {
toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir)
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)
}

0 comments on commit bc00811

Please sign in to comment.