Browse Source

Merge pull request #101 from vcptr/assetpath

add asset location search
Kslr 5 years ago
parent
commit
f5de4fce92
3 changed files with 29 additions and 6 deletions
  1. 22 0
      common/platform/others.go
  2. 0 6
      common/platform/platform.go
  3. 7 0
      common/platform/windows.go

+ 22 - 0
common/platform/others.go

@@ -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
+}

+ 0 - 6
common/platform/platform.go

@@ -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"))

+ 7 - 0
common/platform/windows.go

@@ -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)
+}