Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
9d52b17f
energy
项目概览
energye
/
energy
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
energy
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9d52b17f
编写于
9月 13, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev' of
https://github.com/energye/energy
into dev
上级
2e98d3ff
6f610183
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
168 addition
and
49 deletion
+168
-49
cmd/internal/assets/assets/energy_darwin.json
cmd/internal/assets/assets/energy_darwin.json
+1
-10
cmd/internal/assets/assets/energy_linux.json
cmd/internal/assets/assets/energy_linux.json
+30
-0
cmd/internal/assets/assets/energy_windows.json
cmd/internal/assets/assets/energy_windows.json
+30
-0
cmd/internal/assets/assets/packager/windows/installer-tools.nsh
...ternal/assets/assets/packager/windows/installer-tools.nsh
+11
-11
cmd/internal/initialize/initialize.go
cmd/internal/initialize/initialize.go
+3
-1
cmd/internal/packager/pkg_dpkg_linux.go
cmd/internal/packager/pkg_dpkg_linux.go
+70
-1
cmd/internal/packager/pkg_nsis_windows.go
cmd/internal/packager/pkg_nsis_windows.go
+8
-5
cmd/internal/project/project.go
cmd/internal/project/project.go
+15
-21
未找到文件。
cmd/internal/assets/assets/energy.json
→
cmd/internal/assets/assets/energy
_darwin
.json
浏览文件 @
9d52b17f
...
...
@@ -12,16 +12,7 @@
"productVersion"
:
"1.0.0"
,
"copyright"
:
"Copyright....."
,
"comments"
:
"Built using ENERGY (https://github.com/energye/energy)"
,
"fileDescription"
:
"Built using ENERGY (https://github.com/energye/energy)"
,
"installPack"
:
{
"assets"
:
[],
"icon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"unIcon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"license"
:
""
,
"language"
:
"english"
,
"requestExecutionLevel"
:
"admin"
,
"compress"
:
"7za"
}
"fileDescription"
:
"Built using ENERGY (https://github.com/energye/energy)"
},
"author"
:
{
"name"
:
"yanghy"
,
...
...
cmd/internal/assets/assets/energy_linux.json
0 → 100644
浏览文件 @
9d52b17f
{
"name"
:
"{{.Name}}"
,
"projectPath"
:
"{{.ProjectPath}}"
,
"frameworkPath"
:
"{{.FrameworkPath}}"
,
"assetsDir"
:
"assets"
,
"outputFilename"
:
"{{.OutputFilename}}"
,
"info"
:
{
"icon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"companyName"
:
"{{.CompanyName}}"
,
"productName"
:
"{{.ProductName}}"
,
"fileVersion"
:
"1.0.0"
,
"productVersion"
:
"1.0.0"
,
"copyright"
:
"Copyright....."
,
"comments"
:
"Built using ENERGY (https://github.com/energye/energy)"
,
"fileDescription"
:
"Built using ENERGY (https://github.com/energye/energy)"
},
"dpkg"
:
{
"assets"
:
[],
"icon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"unIcon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"license"
:
""
,
"language"
:
"english"
,
"requestExecutionLevel"
:
"admin"
,
"compress"
:
"7za"
},
"author"
:
{
"name"
:
"yanghy"
,
"email"
:
"snxamdf@126.com"
}
}
cmd/internal/assets/assets/energy_windows.json
0 → 100644
浏览文件 @
9d52b17f
{
"name"
:
"{{.Name}}"
,
"projectPath"
:
"{{.ProjectPath}}"
,
"frameworkPath"
:
"{{.FrameworkPath}}"
,
"assetsDir"
:
"assets"
,
"outputFilename"
:
"{{.OutputFilename}}"
,
"info"
:
{
"icon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"companyName"
:
"{{.CompanyName}}"
,
"productName"
:
"{{.ProductName}}"
,
"fileVersion"
:
"1.0.0"
,
"productVersion"
:
"1.0.0"
,
"copyright"
:
"Copyright....."
,
"comments"
:
"Built using ENERGY (https://github.com/energye/energy)"
,
"fileDescription"
:
"Built using ENERGY (https://github.com/energye/energy)"
},
"nsis"
:
{
"assets"
:
[],
"icon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"unIcon"
:
"{{.ProjectPath}}/resources/icon.ico"
,
"license"
:
""
,
"language"
:
"english"
,
"requestExecutionLevel"
:
"admin"
,
"compress"
:
"7za"
},
"author"
:
{
"name"
:
"yanghy"
,
"email"
:
"snxamdf@126.com"
}
}
cmd/internal/assets/assets/packager/windows/installer-tools.nsh
浏览文件 @
9d52b17f
...
...
@@ -13,18 +13,18 @@
!define INFO_Copyright "{{.Info.Copyright}}"
!define PRODUCT_EXECUTABLE "${INFO_ProjectName}.exe"
!define UNINST_KEY_NAME "${INFO_CompanyName}${INFO_ProductName}"
!define INFO_Icon "{{.
Info.InstallPack
.Icon}}"
!define INFO_UnIcon "{{.
Info.InstallPack
.UnIcon}}"
!define ENERGY_LANGUAGE "{{.
Info.InstallPack
.Language}}"
!define INFO_Icon "{{.
NSIS
.Icon}}"
!define INFO_UnIcon "{{.
NSIS
.UnIcon}}"
!define ENERGY_LANGUAGE "{{.
NSIS
.Language}}"
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UNINST_KEY_NAME}"
{{if .
Info.InstallPack
.License}}
!define ENERGY_PAGE_LICENSE "{{.
Info.InstallPack
.License}}" ; license.txt path
{{if .
NSIS
.License}}
!define ENERGY_PAGE_LICENSE "{{.
NSIS
.License}}" ; license.txt path
{{end}}
{{if .
Info.InstallPack
.RequestExecutionLevel}}
!define REQUEST_EXECUTION_LEVEL "{{.
Info.InstallPack
.RequestExecutionLevel}}"
{{if .
NSIS
.RequestExecutionLevel}}
!define REQUEST_EXECUTION_LEVEL "{{.
NSIS
.RequestExecutionLevel}}"
RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}" ; admin or ""
{{end}}
...
...
@@ -33,18 +33,18 @@ RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}" ; admin or ""
File "/oname=${PRODUCT_EXECUTABLE}" "{{.ProjectPath}}\{{.Name}}.exe" ; app.exe path, ..\..\app.exe
{{if .
Info.InstallPack
.CompressFile}}
File "{{.
Info.InstallPack
.CompressFile}}"
{{if .
NSIS
.CompressFile}}
File "{{.
NSIS
.CompressFile}}"
{{else if .FrameworkPath}}
File /r "{{.FrameworkPath}}\*.*"
{{end}}
{{range $i,$path := .
Info.InstallPack
.Assets }}
{{range $i,$path := .
NSIS
.Assets }}
File /r "{{$path}}"{{end}}
!macroend
!macro energy.compressNsis7z
{{if .
Info.InstallPack
.UseCompress}} ;CEF
{{if .
NSIS
.UseCompress}} ;CEF
Nsis7z::ExtractWithCallback "$INSTDIR\CEF.7z"
Delete "$OUTDIR\CEF.7z"
{{end}}
...
...
cmd/internal/initialize/initialize.go
浏览文件 @
9d52b17f
...
...
@@ -23,6 +23,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"runtime"
"strings"
)
...
...
@@ -116,7 +117,8 @@ func generaProject(c *command.Config) error {
data
[
"OutputFilename"
]
=
c
.
Init
.
Name
data
[
"CompanyName"
]
=
c
.
Init
.
Name
data
[
"ProductName"
]
=
c
.
Init
.
Name
if
err
:=
createFile
(
"assets/energy.json"
,
consts
.
EnergyProjectConfig
,
data
);
err
!=
nil
{
energyJSON
:=
fmt
.
Sprintf
(
"assets/energy_%s.json"
,
runtime
.
GOOS
)
if
err
:=
createFile
(
energyJSON
,
consts
.
EnergyProjectConfig
,
data
);
err
!=
nil
{
return
err
}
...
...
cmd/internal/packager/pkg_dpkg_linux.go
浏览文件 @
9d52b17f
...
...
@@ -14,9 +14,78 @@
package
packager
import
(
"errors"
"fmt"
"github.com/energye/energy/v2/cmd/internal/assets"
"github.com/energye/energy/v2/cmd/internal/project"
"github.com/energye/energy/v2/cmd/internal/tools"
"io/fs"
"io/ioutil"
"os"
"path/filepath"
)
func
GeneraInstaller
(
projectData
*
project
.
Project
)
error
{
const
(
deb
=
"DEBIAN"
debControl
=
deb
+
"/control"
debPreinit
=
deb
+
"/preinit"
debPostinit
=
deb
+
"/postinit"
debPrerm
=
deb
+
"/prerm"
debPostrm
=
deb
+
"/postrm"
)
func
GeneraInstaller
(
proj
*
project
.
Project
)
error
{
if
!
tools
.
CommandExists
(
"dpkg"
)
{
return
errors
.
New
(
"failed to create application installation program. Could not find the dpkg command"
)
}
// 创建构建输出目录
buildOutDir
:=
assets
.
BuildOutPath
(
proj
)
buildOutDir
=
filepath
.
Join
(
buildOutDir
,
"linux"
)
if
!
tools
.
IsExist
(
buildOutDir
)
{
if
err
:=
os
.
MkdirAll
(
buildOutDir
,
0755
);
err
!=
nil
{
return
fmt
.
Errorf
(
"unable to create directory: %w"
,
err
)
}
}
var
err
error
if
err
=
linux
(
proj
);
err
!=
nil
{
return
err
}
return
nil
}
func
linux
(
proj
*
project
.
Project
)
error
{
buildOutDir
:=
assets
.
BuildOutPath
(
proj
)
buildOutDir
=
filepath
.
Join
(
buildOutDir
,
"linux"
)
// app dir
appDir
:=
filepath
.
Join
(
buildOutDir
,
proj
.
Name
)
if
err
:=
os
.
MkdirAll
(
appDir
,
0755
);
err
!=
nil
{
return
fmt
.
Errorf
(
"unable to create directory: %w"
,
err
)
}
debDir
:=
filepath
.
Join
(
appDir
,
deb
)
if
err
:=
os
.
MkdirAll
(
debDir
,
0755
);
err
!=
nil
{
return
fmt
.
Errorf
(
"unable to create directory: %w"
,
err
)
}
controlTemp
:=
`Package: {{.CompanyName}}.{{.ProductName}}.{{.Name}}
Version: {{.ProductVersion}}
Section: Application
Priority: optional
Architecture: {{.Arch}}
Maintainer: {{.Maintainer}}
Description: {{.Comments}}
`
data
:=
make
(
map
[
string
]
any
)
data
[
"Name"
]
=
proj
.
Name
data
[
"CompanyName"
]
=
proj
.
Info
.
CompanyName
data
[
"ProductName"
]
=
proj
.
Info
.
ProductName
data
[
"ProductVersion"
]
=
proj
.
Info
.
ProductVersion
data
[
"Arch"
]
=
""
data
[
"Maintainer"
]
=
""
data
[
"Comments"
]
=
""
content
,
err
:=
tools
.
RenderTemplate
(
controlTemp
,
data
)
if
err
!=
nil
{
return
err
}
debControlFile
:=
filepath
.
Join
(
appDir
,
debControl
)
ioutil
.
WriteFile
(
debControlFile
,
content
,
fs
.
ModePerm
)
return
nil
}
cmd/internal/packager/pkg_nsis_windows.go
浏览文件 @
9d52b17f
...
...
@@ -44,14 +44,14 @@ func GeneraInstaller(proj *project.Project) error {
}
}
// 7za 压缩 CEF
if
proj
.
Info
.
InstallPack
.
Compress
==
"7za"
&&
tools
.
CommandExists
(
"7za"
)
{
proj
.
Info
.
InstallPack
.
UseCompress
=
true
if
proj
.
NSIS
.
Compress
==
"7za"
&&
tools
.
CommandExists
(
"7za"
)
{
proj
.
NSIS
.
UseCompress
=
true
}
if
proj
.
Info
.
InstallPack
.
UseCompress
{
if
proj
.
NSIS
.
UseCompress
{
if
cef7zFile
,
err
:=
compressCEF7za
(
proj
);
err
!=
nil
{
return
err
}
else
{
proj
.
Info
.
InstallPack
.
CompressFile
=
cef7zFile
proj
.
NSIS
.
CompressFile
=
cef7zFile
}
}
...
...
@@ -119,7 +119,10 @@ func windows(proj *project.Project) error {
data
[
"Name"
]
=
proj
.
Name
data
[
"ProjectPath"
]
=
filepath
.
FromSlash
(
proj
.
ProjectPath
)
data
[
"FrameworkPath"
]
=
filepath
.
FromSlash
(
proj
.
FrameworkPath
)
data
[
"Info"
]
=
proj
.
Info
.
FromSlash
()
proj
.
Info
.
FromSlash
()
proj
.
NSIS
.
FromSlash
()
data
[
"Info"
]
=
proj
.
Info
data
[
"NSIS"
]
=
proj
.
NSIS
if
content
,
err
:=
tools
.
RenderTemplate
(
string
(
toolsData
),
data
);
err
!=
nil
{
return
err
}
else
if
err
=
assets
.
WriteFile
(
proj
,
windowsNsisTools
,
content
);
err
!=
nil
{
...
...
cmd/internal/project/project.go
浏览文件 @
9d52b17f
...
...
@@ -29,6 +29,7 @@ type Project struct {
AssetsDir
string
`json:"assetsDir"`
// 构建配置所在目录 未指定使用田默认内置配置
OutputFilename
string
`json:"outputFilename"`
// 输出安装包文件名
Info
Info
`json:"info"`
// 应用信息
NSIS
NSIS
`json:"nsis"`
// windows nsis 安装包
Author
Author
`json:"author"`
// 作者信息
}
...
...
@@ -86,49 +87,42 @@ func (m *Project) setDefaults() {
}
type
Info
struct
{
Icon
string
`json:"icon"`
//应用图标
CompanyName
string
`json:"companyName"`
//公司名称
ProductName
string
`json:"productName"`
//产品名称
FileVersion
string
`json:"FileVersion"`
//文件版本
ProductVersion
string
`json:"productVersion"`
//产品版本
Copyright
*
string
`json:"copyright"`
//版权
Comments
*
string
`json:"comments"`
//exe详情描述
FileDescription
*
string
`json:"fileDescription"`
//描述
InstallPack
InstallPack
`json:"installPack"`
// windows nsis 安装包
Icon
string
`json:"icon"`
//应用图标
CompanyName
string
`json:"companyName"`
//公司名称
ProductName
string
`json:"productName"`
//产品名称
FileVersion
string
`json:"FileVersion"`
//文件版本
ProductVersion
string
`json:"productVersion"`
//产品版本
Copyright
*
string
`json:"copyright"`
//版权
Comments
*
string
`json:"comments"`
//exe详情描述
FileDescription
*
string
`json:"fileDescription"`
//描述
}
func
(
m
*
Info
)
FromSlash
()
*
Info
{
func
(
m
*
Info
)
FromSlash
()
{
m
.
Icon
=
filepath
.
FromSlash
(
m
.
Icon
)
m
.
InstallPack
=
*
m
.
InstallPack
.
FromSlash
()
return
m
}
func
(
m
*
Info
)
ToSlash
()
*
Info
{
func
(
m
*
Info
)
ToSlash
()
{
m
.
Icon
=
filepath
.
ToSlash
(
m
.
Icon
)
m
.
InstallPack
=
*
m
.
InstallPack
.
ToSlash
()
return
m
}
func
(
m
*
InstallPack
)
FromSlash
()
*
InstallPack
{
func
(
m
*
NSIS
)
FromSlash
()
{
m
.
Icon
=
filepath
.
FromSlash
(
m
.
Icon
)
m
.
UnIcon
=
filepath
.
FromSlash
(
m
.
UnIcon
)
for
i
,
as
:=
range
m
.
Assets
{
m
.
Assets
[
i
]
=
filepath
.
FromSlash
(
as
)
}
return
m
}
func
(
m
*
InstallPack
)
ToSlash
()
*
InstallPack
{
func
(
m
*
NSIS
)
ToSlash
()
{
m
.
Icon
=
filepath
.
ToSlash
(
m
.
Icon
)
m
.
UnIcon
=
filepath
.
ToSlash
(
m
.
UnIcon
)
for
i
,
as
:=
range
m
.
Assets
{
m
.
Assets
[
i
]
=
filepath
.
ToSlash
(
as
)
}
return
m
}
//
InstallPack
windows NSIS
type
InstallPack
struct
{
//
NSIS
windows NSIS
type
NSIS
struct
{
Icon
string
`json:"icon"`
//安装包图标
Assets
[]
string
`json:"assets"`
//打包的资源目录、或文件 ["/to/path/file.txt", "/to/dir/*.*", "/to/dir"]
UnIcon
string
`json:"unIcon"`
//安装包卸载图标
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录