Browse Source

Refine environment var

Address some review comments
yuhan6665 2 years ago
parent
commit
11b61b02c8
4 changed files with 26 additions and 31 deletions
  1. 2 2
      common/platform/others.go
  2. 21 20
      common/platform/platform.go
  3. 2 4
      common/platform/windows.go
  4. 1 5
      features/policy/policy.go

+ 2 - 2
common/platform/others.go

@@ -17,13 +17,13 @@ func LineSeparator() string {
 }
 
 func GetToolLocation(file string) string {
-	toolPath := NewEnvFlag(UnixToolLocation).GetValue(getExecutableDir)
+	toolPath := NewEnvFlag(ToolLocation).GetValue(getExecutableDir)
 	return filepath.Join(toolPath, file)
 }
 
 // GetAssetLocation searches for `file` in certain locations
 func GetAssetLocation(file string) string {
-	assetPath := NewEnvFlag(UnixAssetLocation).GetValue(getExecutableDir)
+	assetPath := NewEnvFlag(AssetLocation).GetValue(getExecutableDir)
 	defPath := filepath.Join(assetPath, file)
 	for _, p := range []string{
 		defPath,

+ 21 - 20
common/platform/platform.go

@@ -7,6 +7,24 @@ import (
 	"strings"
 )
 
+const (
+	PluginLocation  = "xray.location.plugin"
+	ConfigLocation  = "xray.location.config"
+	ConfdirLocation = "xray.location.confdir"
+	ToolLocation    = "xray.location.tool"
+	AssetLocation   = "xray.location.asset"
+
+	UseReadV         = "xray.buf.readv"
+	UseFreedomSplice = "xray.buf.splice"
+	UseVmessPadding  = "xray.vmess.padding"
+	UseCone          = "xray.cone.disabled"
+
+	BufferSize           = "xray.ray.buffer.size"
+	BrowserDialerAddress = "xray.browser.dialer"
+	XUDPLog              = "xray.xudp.show"
+	XUDPBaseKey          = "xray.xudp.basekey"
+)
+
 type EnvFlag struct {
 	Name    string
 	AltName string
@@ -67,34 +85,17 @@ func getExecutableSubDir(dir string) func() string {
 }
 
 func GetPluginDirectory() string {
-	const name = "xray.location.plugin"
-	pluginDir := NewEnvFlag(name).GetValue(getExecutableSubDir("plugins"))
+	pluginDir := NewEnvFlag(PluginLocation).GetValue(getExecutableSubDir("plugins"))
 	return pluginDir
 }
 
 func GetConfigurationPath() string {
-	const name = "xray.location.config"
-	configPath := NewEnvFlag(name).GetValue(getExecutableDir)
+	configPath := NewEnvFlag(ConfigLocation).GetValue(getExecutableDir)
 	return filepath.Join(configPath, "config.json")
 }
 
 // GetConfDirPath reads "xray.location.confdir"
 func GetConfDirPath() string {
-	const name = "xray.location.confdir"
-	configPath := NewEnvFlag(name).GetValue(func() string { return "" })
+	configPath := NewEnvFlag(ConfdirLocation).GetValue(func() string { return "" })
 	return configPath
 }
-
-const (
-	UnixToolLocation     = "xray.location.tool"
-	UnixAssetLocation    = "xray.location.asset"
-
-	UseReadV             = "xray.buf.readv"
-	UseFreedomSplice     = "xray.buf.splice"
-	UseVmessPadding      = "xray.vmess.padding"
-	UseCone              = "xray.cone.disabled"
-
-	BrowserDialerAddress = "xray.browser.dialer"
-	XUDPLog              = "xray.xudp.show"
-	XUDPBaseKey          = "xray.xudp.basekey"
-)

+ 2 - 4
common/platform/windows.go

@@ -15,14 +15,12 @@ func LineSeparator() string {
 }
 
 func GetToolLocation(file string) string {
-	const name = "xray.location.tool"
-	toolPath := EnvFlag{Name: name, AltName: NormalizeEnvName(name)}.GetValue(getExecutableDir)
+	toolPath := NewEnvFlag(ToolLocation).GetValue(getExecutableDir)
 	return filepath.Join(toolPath, file+".exe")
 }
 
 // GetAssetLocation searches for `file` in the excutable dir
 func GetAssetLocation(file string) string {
-	const name = "xray.location.asset"
-	assetPath := NewEnvFlag(name).GetValue(getExecutableDir)
+	assetPath := NewEnvFlag(AssetLocation).GetValue(getExecutableDir)
 	return filepath.Join(assetPath, file)
 }

+ 1 - 5
features/policy/policy.go

@@ -83,12 +83,8 @@ func ManagerType() interface{} {
 var defaultBufferSize int32
 
 func init() {
-	const key = "xray.ray.buffer.size"
 	const defaultValue = -17
-	size := platform.EnvFlag{
-		Name:    key,
-		AltName: platform.NormalizeEnvName(key),
-	}.GetValueAsInt(defaultValue)
+	size := platform.NewEnvFlag(platform.BufferSize).GetValueAsInt(defaultValue)
 
 	switch size {
 	case 0: