代码拉取完成,页面将自动刷新
package constants
import (
"fmt"
"os"
"path/filepath"
"runtime"
)
const (
// Windows 系统环境变量路径
ENV_SYSTEM_PATH = `SYSTEM\CurrentControlSet\Control\Session Manager\Environment`
ENV_USER_PATH = `Environment`
// 默认配置路径
DEFAULT_CONFIG_FILE = "config.json"
DEFAULT_FOLDER = ".sdks"
DEFAULT_BACKUP_FILE = "backup.json"
// sdk type
JAVA_SDK = "java"
MAVEN_SDK = "maven"
NODE_SDK = "node"
GO_SDK = "go"
PYTHON_SDK = "python"
PHP_SDK = "php"
)
var (
SdkType = JAVA_SDK
SymlinkPath = ""
Sdks = map[string]SdkInfo{
JAVA_SDK: {Name: JAVA_SDK, Home: "JAVA_HOME", ExecName: map[string][]string{"windows": {filepath.Join("bin", "javac.exe")}, "linux": {filepath.Join("bin", "javac")}, "darwin": {filepath.Join("bin", "javac")}}},
MAVEN_SDK: {Name: MAVEN_SDK, Home: "MAVEN_HOME", ExecName: map[string][]string{"windows": {filepath.Join("bin", "mvn.cmd"), filepath.Join("bin", "mvnd.cmd")}, "linux": {filepath.Join("bin", "mvn"), filepath.Join("bin", "mvnd")}, "darwin": {filepath.Join("bin", "mvn"), filepath.Join("bin", "mvnd")}}},
NODE_SDK: {Name: NODE_SDK, Home: "NODE_HOME", ExecName: map[string][]string{"windows": {filepath.Join("node.exe")}, "linux": {filepath.Join("bin", "node")}, "darwin": {filepath.Join("bin", "node")}}},
GO_SDK: {Name: GO_SDK, Home: "GO_HOME", ExecName: map[string][]string{"windows": {filepath.Join("bin", "go.exe")}, "linux": {filepath.Join("bin", "go")}, "darwin": {filepath.Join("bin", "go")}}},
PYTHON_SDK: {Name: PYTHON_SDK, Home: "PYTHON_HOME", ExecName: map[string][]string{"windows": {filepath.Join("python.exe")}, "linux": {filepath.Join("python")}, "darwin": {filepath.Join("python")}}},
PHP_SDK: {Name: PHP_SDK, Home: "PHP_HOME", ExecName: map[string][]string{"windows": {filepath.Join("php.exe")}, "linux": {filepath.Join("php")}, "darwin": {filepath.Join("php")}}},
}
)
func CheckSdkType(sdkType string) bool {
_, ok := Sdks[sdkType]
return ok
}
func GetDefaultSymlinkPath(sdkType string) string {
dir, err := os.UserHomeDir()
if err != nil {
fmt.Println("error 无法获取用户目录:", err)
return ""
}
join := filepath.Join(dir, DEFAULT_FOLDER, sdkType, sdkType+"_home")
_, err = os.Stat(join)
if os.IsNotExist(err) {
os.MkdirAll(join, 0755)
}
return join
}
func GetEnvHome(sdkType string) string {
return Sdks[sdkType].Home
}
func GetDefaultEnvHome(sdkType string) string {
if runtime.GOOS == "windows" {
if sdkType == NODE_SDK || sdkType == PYTHON_SDK || sdkType == PHP_SDK {
return SymlinkPath
}
}
return filepath.Join(SymlinkPath, "bin")
}
func GetSDKName(sdkType string) string {
return Sdks[sdkType].Name
}
type SdkInfo struct {
Name string
Home string
ExecName map[string][]string
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。