Skip to content

Commit e3d6c20

Browse files
committed
piclist: optimize build and package process
1 parent 4ec117e commit e3d6c20

5 files changed

Lines changed: 76 additions & 38 deletions

File tree

archlinuxcn/piclist/LICENSE

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Copyright Arch Linux Contributors
2+
3+
Permission to use, copy, modify, and/or distribute this software for
4+
any purpose with or without fee is hereby granted.
5+
6+
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
7+
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
8+
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
9+
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
10+
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
11+
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
12+
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

archlinuxcn/piclist/PKGBUILD

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,81 +5,78 @@ _pkgname=PicList
55
pkgver=3.3.2
66
pkgrel=2
77
_electronversion=39
8-
_nodeversion=22
98
pkgdesc="A powerful cloud storage and image hosting management tool"
109
arch=('x86_64')
1110
url='https://piclist.cn/'
1211
_ghurl='https://github.com/Kuingsmile/PicList'
1312
license=('MIT')
1413
conflicts=("${pkgname}-git" "${pkgname}-bin" "${pkgname}-appimage")
15-
provides=("${pkgname}")
16-
depends=(
17-
"electron${_electronversion}"
18-
"nodejs"
19-
"bash"
20-
"hicolor-icon-theme"
21-
)
22-
makedepends=(
23-
'nvm'
24-
'yarn'
25-
'gendesk'
26-
'git'
27-
)
28-
source=(
29-
"${pkgname}-${pkgver}.tar.gz::${_ghurl}/archive/refs/tags/v${pkgver}.tar.gz"
30-
"${pkgname}.sh"
31-
)
14+
depends=("electron${_electronversion}" 'bash' 'hicolor-icon-theme')
15+
makedepends=('nodejs-lts-jod' 'npm' 'yarn' 'git')
16+
source=("${pkgname}-${pkgver}.tar.gz::${_ghurl}/archive/refs/tags/v${pkgver}.tar.gz"
17+
"${pkgname}.desktop"
18+
"${pkgname}.sh")
3219
sha256sums=('0e4a03958acfc95a5ccd2019dd7b5b73976eed7f3dd0a39ae21880a4d6247c20'
20+
'96792576ff904881c2d58e6b7a4aa06aff9d7fa07e950d603c45edda7c4b4de2'
3321
'4b1dc5f32f0295bd672ea0ff12ac63c98256e1e654d864401fb4f1a6d4b3d8f6')
3422

35-
_ensure_local_nvm() {
36-
local NVM_DIR="${srcdir}/.nvm"
37-
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
38-
nvm install "${_nodeversion}"
39-
nvm use "${_nodeversion}"
40-
}
41-
4223
prepare() {
43-
gendesk -q -f -n --pkgname="${pkgname}" --pkgdesc="${pkgdesc}" --categories="Utility;Network" --name="${_pkgname}" --exec="${pkgname} %U"
44-
45-
_ensure_local_nvm
46-
4724
cd "${srcdir}/${_pkgname}-${pkgver}"
4825

4926
sed -e "
5027
s/@electronversion@/${_electronversion}/g
5128
s/@appname@/${pkgname}/g
5229
s/@runname@/app.asar/g
53-
s/@cfgdirname@/${_pkgname}/g
30+
s/@cfgdirname@/${pkgname}/g
5431
s/@options@/--ozone-platform-hint=auto/g
5532
" -i "${srcdir}/${pkgname}.sh"
5633

5734
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
35+
export NODE_ENV=development
5836
export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/v//g')"
5937
export YARN_CACHE_FOLDER="${srcdir}/.yarn_cache"
6038

39+
yarn config set --home enableTelemetry 0
6140
yarn install
6241
}
6342

6443
build() {
6544
cd "${srcdir}/${_pkgname}-${pkgver}"
6645

67-
_ensure_local_nvm
6846
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
6947
export NODE_ENV=production
48+
export YARN_CACHE_FOLDER="${srcdir}/.yarn_cache"
7049
electronDist="/usr/lib/electron${_electronversion}"
7150

7251
yarn run prebuild
7352

74-
yarn exec electron-builder -- --linux --dir -c.electronDist="${electronDist}"
53+
pushd node_modules
54+
55+
rm -rf @img/*musl*
56+
57+
find -name '*.map' -type f -print -delete
58+
find -name '*.ts' -type f -print -delete
59+
find -name '*.cts' -type f -print -delete
60+
find -name '*.mts' -type f -print -delete
61+
find -name '*.yml' ! -name '.yarn-state.yml' -type f -print -delete
62+
find -name '*.md' -type f -print -delete
63+
find -name test.js -type f -print -delete
64+
find -name Makefile -type f -print -delete
65+
66+
find -type d -name 'test' -prune -exec rm -rf {} +
67+
68+
find . -type d -empty -print -delete
69+
70+
popd
71+
72+
yarn electron-builder --linux dir -c.electronDist="${electronDist}"
7573
}
7674

7775
package(){
7876
install -Dm755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
7977

8078
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname}"
8179
cp -Pr --no-preserve=ownership "${srcdir}/${_pkgname}-${pkgver}/dist_electron/linux-unpacked/resources/"* "${pkgdir}/usr/lib/${pkgname}"
82-
rm -rf "${pkgdir}/usr/lib/${pkgname}/app.asar.unpacked/node_modules/@img/"*musl*
8380

8481
for res in 256 512; do
8582
install -Dm644 "${srcdir}/${_pkgname}-${pkgver}/build/icons/${res}x${res}.png" \

archlinuxcn/piclist/REUSE.toml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[[annotations]]
2+
path = [
3+
"PKGBUILD",
4+
"README.md",
5+
"keys/**",
6+
".SRCINFO",
7+
".nvchecker.toml",
8+
"*.install",
9+
"*.sysusers",
10+
"*.tmpfiles",
11+
"*.logrotate",
12+
"*.pam",
13+
"*.service",
14+
"*.sh",
15+
"*.socket",
16+
"*.timer",
17+
"*.desktop",
18+
"*.hook",
19+
]
20+
SPDX-FileCopyrightText = "Arch Linux contributors"
21+
SPDX-License-Identifier = "0BSD"
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[Desktop Entry]
2+
Version=1.0
3+
Type=Application
4+
Name=PicList
5+
GenericName=Cloud Storage and Image Hosting Management
6+
GenericName[zh_CN]=云存储与图床管理
7+
Comment=A powerful cloud storage and image hosting management tool
8+
Comment[zh_CN]=强大的云存储与图床管理工具
9+
Exec=piclist %U
10+
Icon=piclist
11+
Terminal=false
12+
Categories=Utility;Network;

archlinuxcn/superproductivity/superproductivity.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,4 @@ if [[ -f "${_FLAGS_FILE}" ]]; then
2222
done < "${_FLAGS_FILE}"
2323
fi
2424
cd "${_APPDIR}" || { echo "Failed to change directory to ${_APPDIR}"; exit 1; }
25-
if [[ "${EUID}" -ne 0 ]] || [[ "${ELECTRON_RUN_AS_NODE}" ]]; then
26-
exec electron@electronversion@ "${_RUNNAME}" ${_OPTIONS} "${_USER_FLAGS[@]}" "$@"
27-
else
28-
exec electron@electronversion@ "${_RUNNAME}" ${_OPTIONS} --no-sandbox "${_USER_FLAGS[@]}" "$@"
29-
fi
25+
docs

0 commit comments

Comments
 (0)