mirror of
				https://github.com/v2fly/v2ray-core.git
				synced 2025-11-04 03:39:24 +00:00 
			
		
		
		
	search for assets in xdg data directories on non-windows platforms (#1578)
* common/platform: cleanup unused functions * common/platform: search for assets in xdg data directories on non-windows platforms
This commit is contained in:
		
							parent
							
								
									cf500eadd7
								
							
						
					
					
						commit
						118a99e773
					
				@ -4,45 +4,24 @@
 | 
			
		||||
package platform
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io/fs"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func ExpandEnv(s string) string {
 | 
			
		||||
	return os.ExpandEnv(s)
 | 
			
		||||
}
 | 
			
		||||
	"github.com/adrg/xdg"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func LineSeparator() string {
 | 
			
		||||
	return "\n"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetToolLocation(file string) string {
 | 
			
		||||
	const name = "v2ray.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 = "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),
 | 
			
		||||
		filepath.Join("/opt/share/v2ray/", file),
 | 
			
		||||
	} {
 | 
			
		||||
		if _, err := os.Stat(p); err != nil && errors.Is(err, fs.ErrNotExist) {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// asset found
 | 
			
		||||
		return p
 | 
			
		||||
	relPath := filepath.Join("v2ray", file)
 | 
			
		||||
	fullPath, err := xdg.SearchDataFile(relPath)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return defPath
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// asset not found, let the caller throw out the error
 | 
			
		||||
	return defPath
 | 
			
		||||
	return fullPath
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,21 +5,10 @@ package platform
 | 
			
		||||
 | 
			
		||||
import "path/filepath"
 | 
			
		||||
 | 
			
		||||
func ExpandEnv(s string) string {
 | 
			
		||||
	// TODO
 | 
			
		||||
	return s
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func LineSeparator() string {
 | 
			
		||||
	return "\r\n"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetToolLocation(file string) string {
 | 
			
		||||
	const name = "v2ray.location.tool"
 | 
			
		||||
	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"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								go.mod
									
									
									
									
									
								
							@ -3,6 +3,7 @@ module github.com/v2fly/v2ray-core/v5
 | 
			
		||||
go 1.17
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/adrg/xdg v0.4.0
 | 
			
		||||
	github.com/go-chi/chi/v5 v5.0.7
 | 
			
		||||
	github.com/go-chi/render v1.0.1
 | 
			
		||||
	github.com/go-playground/validator/v10 v10.10.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.sum
									
									
									
									
									
								
							@ -21,6 +21,8 @@ git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGy
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 | 
			
		||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 | 
			
		||||
github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
 | 
			
		||||
github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
 | 
			
		||||
@ -503,6 +505,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
 | 
			
		||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E=
 | 
			
		||||
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user