Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
energye
energy
提交
625b4fec
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 搜索 >>
提交
625b4fec
编写于
7月 21, 2023
作者:
yanghye
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
U: energy command line, support linux select gtk2 or gtk3 framework
上级
84e506f9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
107 addition
and
24 deletion
+107
-24
cmd/energy/build.bat
cmd/energy/build.bat
+4
-4
cmd/internal/consts.go
cmd/internal/consts.go
+9
-0
cmd/internal/install.go
cmd/internal/install.go
+64
-19
cmd/internal/tools.go
cmd/internal/tools.go
+25
-0
cmd/internal/version.go
cmd/internal/version.go
+5
-1
未找到文件。
cmd/energy/build.bat
浏览文件 @
625b4fec
...
...
@@ -2,18 +2,18 @@ SET CGO_ENABLED=1
set
GOARCH
=
386
set
GOOS
=
windows
go
build
-o
energy
-
32
.exe
energy
.go
go
build
-
ldflags
"-s -w"
-
o
energy
-
32
.exe
energy
.go
set
GOARCH
=
amd64
set
GOOS
=
windows
go
build
-o
energy
-
64
.exe
energy
.go
go
build
-
ldflags
"-s -w"
-
o
energy
-
64
.exe
energy
.go
set
GOARCH
=
amd64
set
GOOS
=
darwin
go
build
-o
energy
-darwin
-
64
energy
.go
go
build
-
ldflags
"-s -w"
-
o
energy
-darwin
-
64
energy
.go
set
GOARCH
=
amd64
set
GOOS
=
linux
go
build
-o
energy
-linux
-
64
energy
.go
go
build
-
ldflags
"-s -w"
-
o
energy
-linux
-
64
energy
.go
pause
\ No newline at end of file
cmd/internal/consts.go
浏览文件 @
625b4fec
...
...
@@ -10,10 +10,19 @@
package
internal
import
"runtime"
const
(
cefKey
=
"cef"
energyKey
=
"energy"
download_version_config_url
=
"https://energy.yanghy.cn/autoconfig/edv.json"
download_extract_url
=
"https://energy.yanghy.cn/autoconfig/extract.json"
frameworkCache
=
"EnergyFrameworkDownloadCache"
ENERGY_HOME_KEY
=
"ENERGY_HOME"
)
const
(
isWindows
=
runtime
.
GOOS
==
"windows"
//support
isLinux
=
runtime
.
GOOS
==
"linux"
//support
isDarwin
=
runtime
.
GOOS
==
"darwin"
//support
)
cmd/internal/install.go
浏览文件 @
625b4fec
...
...
@@ -18,8 +18,7 @@ import (
"encoding/json"
"fmt"
progressbar
"github.com/energye/energy/v2/cmd/internal/progress-bar"
"github.com/energye/energy/v2/common"
"github.com/energye/energy/v2/consts"
"github.com/energye/golcl/energy/homedir"
"github.com/energye/golcl/tools/command"
"io"
"io/fs"
...
...
@@ -65,9 +64,40 @@ func init() {
CmdInstall
.
Run
=
runInstall
}
const
(
GTK3
=
iota
+
1
GTK2
)
// https://cef-builds.spotifycdn.com/cef_binary_107.1.11%2Bg26c0b5e%2Bchromium-107.0.5304.110_windows64.tar.bz2
// 运行安装
func
runInstall
(
c
*
CommandConfig
)
error
{
var
(
gtk
int
)
if
isLinux
{
// linux, gtk2, gtk3 install
var
gtksel
=
[]
string
{
""
,
"GTK3"
,
"GTK2"
}
println
(
`
Your current installation environment is Linux and there are two GTK solutions available, namely GTK2 GTK3
GTK2: Supports LCL window and can use various LCL controls. The CEF<=106 version supports by default
GTK3: does not support LCL windows and most LCL controls, CEF>=107 version default support
Enter the number to select the installation support for different versions of GTK framework
Number Description
1: GTK3
2: GTK2`
)
// 输入选择GTK支持框架
for
{
print
(
"Please enter the number: "
)
fmt
.
Scan
(
&
gtk
)
if
gtk
==
GTK3
||
gtk
==
GTK2
{
break
}
else
{
println
(
"Number input error, please re-enter. Only 1: GTK3 or 2: GTK2 are supported"
)
}
}
println
(
"Support framework selected:"
,
gtksel
[
gtk
])
}
if
c
.
Install
.
Path
==
""
{
c
.
Install
.
Path
=
c
.
Wd
}
...
...
@@ -112,8 +142,19 @@ func runInstall(c *CommandConfig) error {
println
(
"Invalid version number:"
,
c
.
Install
.
Version
)
os
.
Exit
(
1
)
}
var
versionCEF
=
version
[
"cef"
]
.
(
string
)
var
versionENERGY
=
version
[
"energy"
]
.
(
string
)
var
(
versionCEF
,
versionENERGY
string
)
if
isLinux
{
if
gtk
==
GTK3
{
versionCEF
=
ToRNilString
(
version
[
"cef"
],
""
)
}
else
{
versionCEF
=
ToRNilString
(
version
[
"cefgtk2"
],
""
)
}
}
else
{
versionCEF
=
ToString
(
version
[
"cef"
])
}
versionENERGY
=
version
[
"energy"
]
.
(
string
)
var
downloadURL
map
[
string
]
interface
{}
if
c
.
Install
.
Download
==
"gitee"
{
downloadURL
=
edv
[
"gitee"
]
.
(
map
[
string
]
interface
{})
...
...
@@ -124,7 +165,7 @@ func runInstall(c *CommandConfig) error {
os
.
Exit
(
1
)
}
libCEFOS
,
isSupport
:=
cefOS
()
libEnergyOS
,
isSupport
:=
energyOS
()
libEnergyOS
,
isSupport
:=
energyOS
(
gtk
)
var
downloadCefURL
=
downloadURL
[
"cefURL"
]
.
(
string
)
var
downloadEnergyURL
=
downloadURL
[
"energyURL"
]
.
(
string
)
downloadCefURL
=
strings
.
ReplaceAll
(
downloadCefURL
,
"{version}"
,
versionCEF
)
...
...
@@ -194,8 +235,8 @@ func runInstall(c *CommandConfig) error {
println
(
"Remove file"
,
rmFile
)
os
.
Remove
(
rmFile
)
}
setEnergyHomeEnv
(
consts
.
ENERGY_HOME_KEY
,
installPathName
)
println
(
"
\n
"
,
CmdInstall
.
Short
,
"SUCCESS
\n
Version:"
,
c
.
Install
.
Version
)
setEnergyHomeEnv
(
ENERGY_HOME_KEY
,
installPathName
)
println
(
"
\n
"
,
CmdInstall
.
Short
,
"SUCCESS
\n
Version:"
,
c
.
Install
.
Version
,
"=>"
,
versionENERGY
)
return
nil
}
...
...
@@ -205,20 +246,21 @@ func setEnergyHomeEnv(key, value string) {
cmd
.
MessageCallback
=
func
(
s
[]
byte
,
e
error
)
{
fmt
.
Println
(
"CMD"
,
s
,
" error"
,
e
)
}
if
common
.
IsWindows
()
{
if
isWindows
{
var
args
=
[]
string
{
"/c"
,
"setx"
,
key
,
value
}
cmd
.
Command
(
"cmd.exe"
,
args
...
)
}
else
{
var
envFiles
[]
string
var
energyHomeKey
=
fmt
.
Sprintf
(
"export %s"
,
key
)
var
energyHome
=
fmt
.
Sprintf
(
"export %s=%s"
,
key
,
value
)
if
common
.
IsLinux
()
{
if
isLinux
{
envFiles
=
[]
string
{
".profile"
,
".zshrc"
,
".bashrc"
}
}
else
if
common
.
IsDarwin
()
{
}
else
if
isDarwin
{
envFiles
=
[]
string
{
".profile"
,
".zshrc"
,
".bash_profile"
}
}
homeDir
,
_
:=
homedir
.
Dir
()
for
_
,
file
:=
range
envFiles
{
var
fp
=
path
.
Join
(
consts
.
H
omeDir
,
file
)
var
fp
=
path
.
Join
(
h
omeDir
,
file
)
cmd
.
Command
(
"touch"
,
fp
)
f
,
err
:=
os
.
OpenFile
(
fp
,
os
.
O_RDWR
|
os
.
O_APPEND
,
0666
)
if
err
==
nil
{
...
...
@@ -269,18 +311,18 @@ func setEnergyHomeEnv(key, value string) {
}
func
cefOS
()
(
string
,
bool
)
{
if
common
.
IsWindows
()
{
// windows arm for 64 bit, windows for 32/64 bit
if
isWindows
{
// windows arm for 64 bit, windows for 32/64 bit
if
runtime
.
GOARCH
==
"arm64"
{
return
"windowsarm64"
,
true
}
return
fmt
.
Sprintf
(
"windows%d"
,
strconv
.
IntSize
),
true
}
else
if
common
.
IsLinux
()
{
//linux for 64 bit
}
else
if
isLinux
{
//linux for 64 bit
if
runtime
.
GOARCH
==
"arm64"
{
return
"linuxarm64"
,
true
}
else
if
runtime
.
GOARCH
==
"amd64"
{
return
"linux64"
,
true
}
}
else
if
common
.
IsDarwin
()
{
// macosx for 64 bit
}
else
if
isDarwin
{
// macosx for 64 bit
if
runtime
.
GOARCH
==
"arm64"
{
return
"macosarm64"
,
true
}
else
if
runtime
.
GOARCH
==
"amd64"
{
...
...
@@ -291,12 +333,15 @@ func cefOS() (string, bool) {
return
fmt
.
Sprintf
(
"%v %v"
,
runtime
.
GOOS
,
runtime
.
GOARCH
),
false
}
func
energyOS
()
(
string
,
bool
)
{
if
common
.
IsWindows
()
{
func
energyOS
(
gtk
int
)
(
string
,
bool
)
{
if
isWindows
{
return
fmt
.
Sprintf
(
"Windows %d bits"
,
strconv
.
IntSize
),
true
}
else
if
common
.
IsLinux
()
{
return
"Linux x86 64 bits"
,
true
}
else
if
common
.
IsDarwin
()
{
}
else
if
isLinux
{
if
gtk
==
GTK3
{
return
"Linux x86 64 bits"
,
true
}
return
"Linux GTK2 x86 64 bits"
,
true
}
else
if
isDarwin
{
return
"MacOSX x86 64 bits"
,
true
}
//not support
...
...
cmd/internal/tools.go
0 → 100644
浏览文件 @
625b4fec
//----------------------------------------
//
// Copyright © yanghy. All Rights Reserved.
//
// Licensed under Apache License Version 2.0, January 2004
//
// https://www.apache.org/licenses/LICENSE-2.0
//
//----------------------------------------
package
internal
func
ToString
(
v
interface
{})
string
{
if
v
==
nil
{
return
""
}
return
v
.
(
string
)
}
func
ToRNilString
(
v
interface
{},
new
string
)
string
{
if
v
==
nil
{
return
new
}
return
v
.
(
string
)
}
cmd/internal/version.go
浏览文件 @
625b4fec
...
...
@@ -55,9 +55,13 @@ func runVersion(c *CommandConfig) error {
var
version
=
keys
[
i
]
var
ver
=
versionList
[
version
]
.
(
map
[
string
]
interface
{})
if
c
.
Version
.
All
{
cef
:=
ToRNilString
(
ver
[
"cef"
],
"--"
)
cefgtk2
:=
ToRNilString
(
ver
[
"cefgtk2"
],
"--"
)
energy
:=
ToRNilString
(
ver
[
"energy"
],
"--"
)
println
(
" "
,
version
,
fmt
.
Sprintf
(
`
ENERGY: %s
CEF: %s
ENERGY: %s`
,
ver
[
"cef"
]
.
(
string
),
ver
[
"energy"
]
.
(
string
)
))
CEF-GTK2: %s`
,
energy
,
cef
,
cefgtk2
))
}
else
{
println
(
" "
,
version
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录