| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | //go:build !windows// +build !windowspackage platformimport (	"os"	"path/filepath")func ExpandEnv(s string) string {	return os.ExpandEnv(s)}func LineSeparator() string {	return "\n"}func GetToolLocation(file string) string {	toolPath := NewEnvFlag(ToolLocation).GetValue(getExecutableDir)	return filepath.Join(toolPath, file)}// GetAssetLocation searches for `file` in certain locationsfunc GetAssetLocation(file string) string {	assetPath := NewEnvFlag(AssetLocation).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),		filepath.Join("/opt/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}
 |