2015-10-09 16:48:05 +02:00
|
|
|
// +build windows
|
|
|
|
|
|
|
|
package platform
|
|
|
|
|
2021-05-05 06:39:00 +08:00
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"io/fs"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
)
|
2017-11-11 22:29:00 +01:00
|
|
|
|
2015-10-13 21:41:53 +02:00
|
|
|
func ExpandEnv(s string) string {
|
2015-10-09 16:48:05 +02:00
|
|
|
// TODO
|
|
|
|
return s
|
|
|
|
}
|
2015-10-13 21:41:53 +02:00
|
|
|
|
|
|
|
func LineSeparator() string {
|
|
|
|
return "\r\n"
|
|
|
|
}
|
2017-11-11 22:29:00 +01:00
|
|
|
|
|
|
|
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")
|
|
|
|
}
|
2020-08-17 18:56:01 +08:00
|
|
|
|
|
|
|
// GetAssetLocation search for `file` in the excutable dir
|
|
|
|
func GetAssetLocation(file string) string {
|
|
|
|
const name = "v2ray.location.asset"
|
|
|
|
assetPath := NewEnvFlag(name).GetValue(getExecutableDir)
|
2021-05-05 06:39:00 +08:00
|
|
|
defPath := filepath.Join(assetPath, file)
|
|
|
|
for _, p := range []string{
|
|
|
|
defPath,
|
|
|
|
file,
|
|
|
|
} {
|
|
|
|
if _, err := os.Stat(p); err != nil && errors.Is(err, fs.ErrNotExist) {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
|
|
|
// asset found
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
|
|
|
// asset not found, let the caller throw out the error
|
|
|
|
return defPath
|
2020-08-17 18:56:01 +08:00
|
|
|
}
|