energy-command-line, energy init . 初始化应用

This commit is contained in:
杨红岩 2023-09-03 22:49:10 +08:00
parent 8dfec522c3
commit 0ebc5db723
3 changed files with 107 additions and 10 deletions

View File

@ -0,0 +1,54 @@
# {{.}} Project
## 目录说明 - Directory description
> resources
>> cn: 资源存放目录, 可自定义目录名
>>
>> en: Resource storage directory, customizable directory name
## 文件说明 - File description
> energy.json
>> cn: 项目配置文件, 用于构建和生成安装程序, 文件名不可更改.
>>
>> en: project configuration file, which is used to build and generate the installer, has an unchangeable file name.
>
> go.mod
>> cn: go模块依赖管理, 文件名不可更改.
>>
>> en: go module dependency management, has an unchangeable file name.
>
> main.go
>> cn: go应用启用入口文件
>>
>> en: go application enables the entry file
>
> go.sum No need to change
### cn: 以上可以根据实际情况变更
### en: The above can be changed according to the actual situation
## 运行应用 - Run Application
> Windows, Linux: `go run main.go`
>
> MacOS: `go run main.go env=dev`
## 构建应用 - Building Applications
> Use Go:
>> Windows: `go build -ldflags "-H windowsgui -s -w"`
>>
>> Linux: `go build -ldflags "-s -w"`
>>
>> MacOS: `go build -ldflags "-s -w"`
>
> Use Energy
>> `energy build .`
>
## 制作安装包 - Making installation packages
> 1. 构建应用 - Building Applications
>> `energy build .`
>
> 2. 执行制作安装包命令 - Run the create installation package command
>> `energy package .`
>>
>> [Reference link]()

View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Go Energy</title>
</head>
<body>
index.html
</body>
</html>

View File

@ -34,9 +34,25 @@ func InitEnergyProject(c *command.Config) error {
if err := generaProject(c); err != nil {
return err
}
generaReadme()
println("Successfully initialized the energy application project", c.Init.Name)
println()
println("Run Application: go run main.go")
println(`Building Applications:
Use GO: go build -ldflags "-s -w"
Use Energy: energy build .
`)
println(`website:
https://github.com/energye/energy
https://energy.yanghy.cn
`)
return nil
}
func generaReadme() {
}
func generaProject(c *command.Config) error {
projectPath := filepath.Join(c.Wd, c.Init.Name)
println("Create Project:", c.Init.Name)
@ -48,7 +64,7 @@ func generaProject(c *command.Config) error {
if strings.ToLower(s) != "y" {
return errors.New("Failed to initialize project " + c.Init.Name)
} else {
var deleteFiles = []string{"energy.json", "resources", "main.go", "go.mod", "go.sum"}
var deleteFiles = []string{"energy.json", "resources", "main.go", "go.mod", "go.sum", "resources/index.html"}
for _, f := range deleteFiles {
path := filepath.Join(projectPath, f)
if info, err := os.Lstat(path); err == nil {
@ -111,6 +127,20 @@ func generaProject(c *command.Config) error {
}
}
// 创建 resources/index.html
if err := os.Mkdir(filepath.Join(projectPath, "resources"), fs.ModePerm); err != nil {
return err
} else {
if indexText, err := assets.ReadFile("assets/index.html"); err != nil {
return err
} else {
path := filepath.Join(projectPath, "resources", "index.html")
if err = ioutil.WriteFile(path, indexText, 0666); err != nil {
return err
}
}
}
// cmd
println("cmd run")
cmd := toolsCommand.NewCMD()
@ -118,17 +148,20 @@ func generaProject(c *command.Config) error {
cmd.MessageCallback = func(bytes []byte, err error) {
fmt.Println("CMD:", bytes, " error:", err)
}
// cmd go env -w GO111MODULE=on
println("Enable Go mod management")
cmd.Command("go", []string{"env", "-w", "GO111MODULE=on"}...)
if c.Init.IGo {
// cmd go env -w GO111MODULE=on
println("Enable Go mod management")
cmd.Command("go", []string{"env", "-w", "GO111MODULE=on"}...)
// cmd go env -w GOPROXY=https://goproxy.io,direct
println("Configure mod agent")
cmd.Command("go", []string{"env", "-w", "GOPROXY=https://goproxy.io,direct"}...)
// cmd go env -w GOPROXY=https://goproxy.io,direct
println("Configure mod agent")
cmd.Command("go", []string{"env", "-w", "GOPROXY=https://goproxy.io,direct"}...)
// cmd go mod tidy
println("Update Energy dependencies, version:")
cmd.Command("go", []string{"mod", "tidy"}...)
}
// cmd go mod tidy
println("Update Energy dependencies, version:")
cmd.Command("go", []string{"mod", "tidy"}...)
cmd.Close()
return nil
}