blob: 509e45d92526058775edb90005d9579791fa68f0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
# Co-maintainer: Edu4rdSHL <edu4rdshl@protonmail.com>
pkgname=waveterm-git
_pkgname=Wave
pkgver=0.14.4.r1.g96c2526
_electronversion=41
_nodeversion=22
pkgrel=1
pkgdesc="An open-source, cross-platform terminal for seamless workflows.(Git version.Use system-wide electron)"
arch=('any')
url="https://www.waveterm.dev/"
_ghurl="https://github.com/wavetermdev/waveterm"
license=('Apache-2.0')
conflicts=("${pkgname%-git}")
provides=("${pkgname%-git}=${pkgver%.r}")
depends=(
"electron${_electronversion}"
)
makedepends=(
'gendesk'
'npm'
'git'
'go'
'ruby'
'go-task'
'cmake'
'zip'
'nvm'
'curl'
'zig'
'libarchive'
'openjpeg2'
'jq'
)
source=(
"${pkgname//-/.}::git+${_ghurl}.git"
"${pkgname%-git}.sh"
)
sha256sums=('SKIP'
'31ad33b633744f5361abd964be306cea53ae1050e760c787115f7eca60045ae6')
pkgver() {
cd "${srcdir}/${pkgname//-/.}"
set -o pipefail
git describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//g' ||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}
_ensure_local_nvm() {
local NVM_DIR="${srcdir}/.nvm"
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
nvm install "${_nodeversion}"
nvm use "${_nodeversion}"
}
_get_electron_version() {
_elec_ver=$(jq -r '.devDependencies["electron"] // .dependencies["electron"]' "${srcdir}/${pkgname//-/.}/package.json" | tr -d '^')
_main_ver=$(echo "${_elec_ver}" | cut -d. -f1)
echo -e "The electron version is: \033[1;31m${_main_ver}\033[0m"
}
prepare() {
cd "${srcdir}/${pkgname//-/.}"
sed -i -e "
s/@electronversion@/${_electronversion}/g
s/@appname@/${pkgname%-git}/g
s/@runname@/app.asar/g
s/@cfgdirname@/${_pkgname}/g
s/@options@/env ELECTRON_OZONE_PLATFORM_HINT=auto/g
" "${srcdir}/${pkgname%-git}.sh"
export CGO_ENABLED=1
export GO111MODULE=on
export GOOS=linux
export GOCACHE="${srcdir}/go-build"
export GOMODCACHE="${srcdir}/go/pkg/mod"
export RUBY_ENV="production"
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')"
HOME="${srcdir}/.electron-gyp"
{
echo -e '\n'
#echo 'build_from_source=true'
echo "cache=${srcdir}/.npm_cache"
echo "maxsockets=32"
} >> .npmrc
if [[ "$(curl -s ipinfo.io/country)" == *"CN"* ]]; then
# 设置Go代理
export GOPROXY=https://goproxy.cn,direct
# 设置Ruby使用国内镜像
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
# 设置npm使用国内镜像
{
echo 'registry=https://registry.npmmirror.com'
echo 'electron_mirror=https://registry.npmmirror.com/-/binary/electron/'
echo 'electron_builder_binaries_mirror=https://registry.npmmirror.com/-/binary/electron-builder-binaries/'
} >> .npmrc
find ./ -type f -name "package-lock.json" -exec sed -i "s/registry.npmjs.org/registry.npmmirror.com/g" {} +
fi
_get_electron_version
_ensure_local_nvm
sed -i "s/\"electron\": \"[^\"]*\"/\"electron\": \"${SYSTEM_ELECTRON_VERSION}\"/g" package.json
sed -i "s/build\/icons.icns/build\/appicon.png/g" electron-builder.config.cjs
sed -i -e "
s/npm install/NODE_ENV=development npm install --include=optional/g
/- task: build:server:macos/d
/- task: build:server:windows/d
s/ && npm exec electron-builder -- -c electron-builder.config.cjs -p never {{.CLI_ARGS}}//g
" Taskfile.yml
gem install fpm
NODE_ENV=development npm add -D node-gyp sharp
NODE_ENV=development go-task init
}
build() {
cd "${srcdir}/${pkgname//-/.}"
_ensure_local_nvm
local electronDist="/usr/lib/electron${_electronversion}"
NODE_ENV=production go-task package
NODE_ENV=production npm exec -c "electron-builder --linux dir -c.electronDist=${electronDist} -c electron-builder.config.cjs"
}
package() {
install -Dm755 "${srcdir}/${pkgname%-git}.sh" "${pkgdir}/usr/bin/${pkgname%-git}"
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}"
find "${srcdir}/${pkgname//-/.}/make/linux-"*"/resources" -maxdepth 1 -type f -exec install -Dm644 -t "${pkgdir}/usr/lib/${pkgname%-git}" {} +
if find "${srcdir}/${pkgname//-/.}/make/linux-"*"/resources" -mindepth 1 -maxdepth 1 -type d | read; then
for _subdir in "${srcdir}/${pkgname//-/.}/make/linux-"*"/resources/"*; do
if [ -d "${_subdir}" ]; then
cp -Pr --no-preserve=ownership "${_subdir}" "${pkgdir}/usr/lib/${pkgname%-git}"
fi
done
fi
install -Dm644 "${srcdir}/${pkgname//-/.}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications"
_icon_sizes=(16x16 32x32 128x128 256x256 512x512)
for _icons in "${_icon_sizes[@]}";do
install -Dm644 "${srcdir}/${pkgname//-/.}/build/icons/${_icons}.png" \
"${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png"
done
}
|