提交 a94ad940 编写于 作者: yanghye's avatar yanghye

energy-command-line, set env to path

上级 e6c88e65
......@@ -85,7 +85,7 @@ func SetNSISEnv(nsisRoot string) {
defer cmd.Close()
var args = []string{consts.NSISHomeKey, nsisRoot}
cmd.Command("setx", args...)
//envPath.add("%NSIS_HOME%")
envPath.add("%NSIS_HOME%")
println("\nHint: Reopen the cmd window for the makensis command to take effect.")
}
......
......@@ -43,16 +43,19 @@ func Install(c *command.Config) {
// 初始配置和安装目录
initInstall(c)
var (
goRoot string
cefFrameworkRoot string
nsisRoot string
goRoot string
goSuccessCallback func()
cefFrameworkRoot string
cefFrameworkSuccessCallback func()
nsisRoot string
nsisSuccessCallback func()
)
// 安装Go开发环境
goRoot = installGolang(c)
goRoot, goSuccessCallback = installGolang(c)
// 安装CEF二进制框架
cefFrameworkRoot = installCEFFramework(c)
cefFrameworkRoot, cefFrameworkSuccessCallback = installCEFFramework(c)
// 安装nsis安装包制作工具, 仅windows - amd64
nsisRoot = installNSIS(c)
nsisRoot, nsisSuccessCallback = installNSIS(c)
// 设置nsis环境变量
if nsisRoot != "" {
env.SetNSISEnv(nsisRoot)
......@@ -61,11 +64,22 @@ func Install(c *command.Config) {
if goRoot != "" {
env.SetGoEnv(goRoot)
}
// windows path 环境变量设置
env.SetToPath()
// 设置 energy cef 环境变量
if cefFrameworkRoot != "" {
env.SetEnergyHomeEnv(cefFrameworkRoot)
}
// success 输出
if nsisSuccessCallback != nil {
nsisSuccessCallback()
}
if goSuccessCallback != nil {
goSuccessCallback()
}
if cefFrameworkSuccessCallback != nil {
cefFrameworkSuccessCallback()
}
}
func cefInstallPathName(c *command.Config) string {
......
......@@ -25,10 +25,10 @@ import (
"strings"
)
func installCEFFramework(c *command.Config) string {
func installCEFFramework(c *command.Config) (string, func()) {
if tools.CheckCEFDir() {
println("CEF Framework installed")
return ""
return "", nil
}
print("CEF Framework is not installed. Determine whether to install CEF Framework? Y/n: ")
var s string
......@@ -36,7 +36,7 @@ func installCEFFramework(c *command.Config) string {
fmt.Scanln(&s)
if strings.ToLower(s) != "y" {
println("CEF Framework install exit")
return ""
return "", nil
}
}
// 获取提取文件配置
......@@ -44,14 +44,14 @@ func installCEFFramework(c *command.Config) string {
if err != nil {
fmt.Println("Error:", err.Error())
os.Exit(1)
return ""
return "", nil
}
var extractConfig map[string]any
extractData = bytes.TrimPrefix(extractData, []byte("\xef\xbb\xbf"))
if err := json.Unmarshal(extractData, &extractConfig); err != nil {
fmt.Println("Error:", err.Error())
os.Exit(1)
return ""
return "", nil
}
extractOSConfig := extractConfig[runtime.GOOS].(map[string]any)
......@@ -60,14 +60,14 @@ func installCEFFramework(c *command.Config) string {
if err != nil {
fmt.Println("Error:", err.Error())
os.Exit(1)
return ""
return "", nil
}
var edv map[string]any
downloadJSON = bytes.TrimPrefix(downloadJSON, []byte("\xef\xbb\xbf"))
if err := json.Unmarshal(downloadJSON, &edv); err != nil {
fmt.Println("Error:", err.Error())
os.Exit(1)
return ""
return "", nil
}
// -c cef args value
......@@ -76,7 +76,7 @@ func installCEFFramework(c *command.Config) string {
if cef != consts.CefEmpty && cef != consts.Cef109 && cef != consts.Cef106 && cef != consts.Cef87 {
fmt.Println("Error:", "-c [cef] Incorrect args value")
os.Exit(1)
return ""
return "", nil
}
installPathName := cefInstallPathName(c)
println("Install Path", installPathName)
......@@ -102,7 +102,7 @@ func installCEFFramework(c *command.Config) string {
if installVersion == nil || len(installVersion) == 0 {
fmt.Println("Error:", "Invalid version number ", c.Install.Version)
os.Exit(1)
return ""
return "", nil
}
// 当前版本 cef 和 liblcl 版本选择
var (
......@@ -162,7 +162,7 @@ func installCEFFramework(c *command.Config) string {
if cefModule == nil {
fmt.Println("Error:", "CEF module", cefModuleName, "is not configured in the current version")
os.Exit(1)
return ""
return "", nil
}
// 下载源选择
var replaceSource = func(url, source string, sourceSelect int, module string) string {
......@@ -245,11 +245,12 @@ func installCEFFramework(c *command.Config) string {
println("Unpack file", key, "success\n")
}
}
println("\nSUCCESS \nInstalled version:", c.Install.Version, liblclVersion)
if liblclModule == nil {
println("hint: liblcl module", liblclModuleName, `is not configured in the current version, You need to use built-in binary build. [go build -tags="tempdll"]`)
return installPathName, func() {
println("\nCEF Installed Successfully \nInstalled version:", c.Install.Version, liblclVersion)
if liblclModule == nil {
println("hint: liblcl module", liblclModuleName, `is not configured in the current version, You need to use built-in binary build. [go build -tags="tempdll"]`)
}
}
return installPathName
}
func cefOS(module map[string]any) (string, bool) {
......
......@@ -23,10 +23,10 @@ import (
)
// 下载go并配置安装
func installGolang(c *command.Config) string {
func installGolang(c *command.Config) (string, func()) {
if tools.CommandExists("go") {
println("Golang installed")
return ""
return "", nil
}
print("Golang not installed, do you want to install Golang? Y/n: ")
var s string
......@@ -34,7 +34,7 @@ func installGolang(c *command.Config) string {
fmt.Scanln(&s)
if strings.ToLower(s) != "y" {
println("Golang install exit")
return ""
return "", nil
}
}
s = c.Install.Path // 安装目录
......@@ -52,7 +52,7 @@ func installGolang(c *command.Config) string {
println("Directory does not exist. Creating directory.", s)
if err := os.MkdirAll(s, fs.ModePerm); err != nil {
println("Failed to create goroot directory", err.Error())
return ""
return "", nil
}
}
fileName := fmt.Sprintf("go%s.%s-%s.%s", version, gos, arch, ext)
......@@ -86,7 +86,9 @@ func installGolang(c *command.Config) string {
//tar
ExtractUnTar(savePath, targetPath)
}
return targetPath
return targetPath, func() {
println("Golang Installed Successfully \nInstalled version:", version)
}
}
return ""
return "", nil
}
......@@ -15,18 +15,17 @@ import (
"github.com/energye/energy/v2/cmd/internal/consts"
progressbar "github.com/energye/energy/v2/cmd/internal/progress-bar"
"github.com/energye/energy/v2/cmd/internal/tools"
"os"
"path/filepath"
"runtime"
"strings"
)
func installNSIS(c *command.Config) string {
func installNSIS(c *command.Config) (string, func()) {
if consts.IsWindows && runtime.GOARCH == "amd64" {
//if tools.CommandExists("makensis") {
if tools.IsExist(filepath.Join(os.Getenv(consts.NSISHomeKey), "makensis.exe")) {
if tools.CommandExists("makensis") {
//if tools.IsExist(filepath.Join(os.Getenv(consts.NSISHomeKey), "makensis.exe")) {
println("NSIS installed")
return ""
return "", nil
}
print("NSIS is not installed. Do you want to install NSIS? Y/n: ")
var s string
......@@ -34,12 +33,13 @@ func installNSIS(c *command.Config) string {
fmt.Scanln(&s)
if strings.ToLower(s) != "y" {
println("NSIS install exit")
return ""
return "", nil
}
}
// 下载并安装配置NSIS
s = c.Install.Path // 安装目录
fileName := fmt.Sprintf("nsis.windows.386-%s.zip", consts.NSISDownloadVersion)
version := consts.NSISDownloadVersion
fileName := fmt.Sprintf("nsis.windows.386-%s.zip", version)
downloadUrl := fmt.Sprintf(consts.NSISDownloadURL, fileName)
savePath := filepath.Join(s, consts.FrameworkCache, fileName)
var err error
......@@ -65,10 +65,12 @@ func installNSIS(c *command.Config) string {
// 释放文件
//zip
ExtractUnZip(savePath, targetPath, true)
return targetPath
return targetPath, func() {
println("NSIS Installed Successfully \nInstalled version:", version)
}
}
} else {
println("Non Windows amd64 skipping nsis")
}
return ""
return "", nil
}
......@@ -86,6 +86,7 @@ func windows(projectData *project.Project) error {
func makeNSIS(projectData *project.Project) error {
var args []string
cmd := command.NewCMD()
cmd.IsPrint = false
cmd.Dir = projectData.ProjectPath
cmd.MessageCallback = func(bytes []byte, err error) {
println("makensis:", string(bytes))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册