excel-parser-processor-git
MEDIUM
maintainer zxp19821005
0 votes
scanned 2026-09-24 03:41:46.078749
Why flagged
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
Triggered rules
Medium
npm/yarn/pnpm install of an undeclared external package
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:94
npm install -D sass
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: zxp19821005 <zxp19821005 at 163 dot com>
2
pkgname=excel-parser-processor-git
3
_pkgname=Excel-Parser-Processor
4
pkgver=1.3.1.r503.g2fb910a
5
_electronversion=39
6
_nodeversion=22
7
pkgrel=1
8
pkgdesc="Simply generates an array of items from the rows of an Excel file and does the repetitive tedious operations step by step recursively till every item of the array is processed."
9
arch=('any')
10
url="https://github.com/btargac/excel-parser-processor"
11
license=('MIT')
12
conflicts=("${pkgname%-git}")
13
provides=("${pkgname%-git}=${pkgver%.r*}")
14
depends=(
15
"electron${_electronversion}"
16
)
17
makedepends=(
18
'npm'
19
'git'
20
'nvm'
21
'gendesk'
22
'jq'
23
)
24
source=(
25
"${pkgname%-git}.git::git+${url}.git"
26
"${pkgname%-git}.sh"
27
)
28
sha256sums=('SKIP'
29
'bd5358d8f323d3c2c2f0733364ee4ea55f551dd86ba0be2a76846210b60897fc')
30
_get_project_dir() {
31
local d
32
while IFS= read -r d; do
33
find "$d" -name "package.json" ! -path "*/node_modules/*" 2>/dev/null | grep -q . && { echo "$d"; return; }
34
done < <(find "${srcdir}" -maxdepth 1 -mindepth 1 -type d ! -name '.*')
35
}
36
pkgver() {
37
cd "$(_get_project_dir)"
38
set -o pipefail
39
git describe --long --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//g' ||
40
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
41
}
42
_ensure_local_nvm() {
43
local NVM_DIR="${srcdir}/.nvm"
44
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
45
nvm install "${_nodeversion}"
46
nvm use "${_nodeversion}"
47
}
48
_get_app_dir() {
49
find "${srcdir}" -type d -name "node_modules" -prune -o -type f -name "resources.pak" -print0 | xargs -0 dirname | head -n 1
50
}
51
_get_electron_version() {
52
_elec_ver=$(find "$(_get_project_dir)" -name "package.json" ! -path "*/node_modules/*" -print \
53
| xargs -I{} jq -r '(.devDependencies.electron // .dependencies.electron) // empty' {} 2>/dev/null \
54
| grep -v '^$' | sed 's/^[^0-9]*//' | head -1)
55
[[ -z "${_elec_ver}" ]] && return 1
56
echo -e "The electron version is: \033[1;31m${_elec_ver%%.*}\033[0m"
57
}
58
_set_build_env() {
59
export ELECTRON_DIST="/usr/lib/electron${_electronversion}"
60
export ELECTRON_OVERRIDE_DIST_PATH="${ELECTRON_DIST}"
61
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
62
export ELECTRON_BUILDER_OFFLINE=true
63
export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/^v//')"
64
export HOME="${srcdir}/.home"
65
export XDG_CACHE_HOME="${HOME}/.cache"
66
export XDG_CONFIG_HOME="${HOME}/.config"
67
export XDG_DATA_HOME="${HOME}/.local/share"
68
export npm_config_cache="${HOME}/.npm_cache"
69
export COREPACK_NPM_REGISTRY="${COREPACK_NPM_REGISTRY:-${NPM_CONFIG_REGISTRY:-https://registry.npmjs.org}}"
70
export COREPACK_HOME="${HOME}/.corepack"
71
export npm_config_audit=false
72
mkdir -p "${HOME}" "${npm_config_cache}" "${COREPACK_HOME}"
73
}
74
prepare() {
75
cd "$(_get_project_dir)"
76
_get_electron_version
77
sed -i -e "
78
s/@electronversion@/${_electronversion}/g
79
s/@appname@/${pkgname%-git}/g
80
s/@runname@/app.asar/g
81
s/@cfgdirname@/${_pkgname//-/ }/g
82
" "${srcdir}/${pkgname%-git}.sh"
83
gendesk -q -f -n \
84
--pkgname="${pkgname%-git}" \
85
--pkgdesc="${pkgdesc}" \
86
--categories="Utility" \
87
--name="${_pkgname}" \
88
--exec="${pkgname%-git} %U"
89
_ensure_local_nvm
90
_set_build_env
91
sed -i '/"devDependencies":/{:a;N;/^[[:space:]]*}/!ba;s/"electron": "[^"]*"/"electron": "'${SYSTEM_ELECTRON_VERSION}'"/}' package.json
92
export NODE_ENV=development
93
npm install --legacy-peer-deps
94
npm install -D sass
95
}
96
build() {
97
cd "$(_get_project_dir)"
98
_ensure_local_nvm
99
_set_build_env
100
export NODE_ENV=production
101
npm run build
102
npm exec -c "electron-builder build --linux dir -c.electronDist=${ELECTRON_DIST}"
103
}
104
package() {
105
local _src="$(_get_project_dir)"
106
install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}"
107
local _app_dir=$(_get_app_dir)
108
cp -a "${_app_dir}/resources/." "${pkgdir}/usr/lib/${pkgname%-git}/"
109
_icon_sizes=(16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512 1024x1024)
110
for _icons in "${_icon_sizes[@]}";do
111
install -Dm644 "${_src}/build/icons/${_icons}.png" \
112
"${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png"
113
done
114
install -Dm644 "${_src}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications"
115
install -Dm644 "${_src}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"
116
}
Changes since previous scan
--- PKGBUILD @ 2026-06-18 16:11+++ PKGBUILD @ 2026-09-24 03:41@@ -1,110 +1,116 @@ # Maintainer: zxp19821005 <zxp19821005 at 163 dot com> pkgname=excel-parser-processor-git _pkgname=Excel-Parser-Processor-pkgver=1.3.1.r500.gec6b347-_electronversion=36+pkgver=1.3.1.r503.g2fb910a+_electronversion=39 _nodeversion=22 pkgrel=1-pkgdesc="Simply generates an array of items from the rows of an Excel file and does the repetitive tedious operations step by step recursively till every item of the array is processed.(Use system-wide electron)"+pkgdesc="Simply generates an array of items from the rows of an Excel file and does the repetitive tedious operations step by step recursively till every item of the array is processed." arch=('any') url="https://github.com/btargac/excel-parser-processor" license=('MIT') conflicts=("${pkgname%-git}") provides=("${pkgname%-git}=${pkgver%.r*}") depends=(- "electron${_electronversion}"+ "electron${_electronversion}" ) makedepends=(- 'npm'- 'git'- 'nvm'- 'gendesk'- 'curl'- 'jq'+ 'npm'+ 'git'+ 'nvm'+ 'gendesk'+ 'jq' ) source=(- "${pkgname%-git}.git::git+${url}.git"- "${pkgname%-git}.sh"+ "${pkgname%-git}.git::git+${url}.git"+ "${pkgname%-git}.sh" ) sha256sums=('SKIP'- '31ad33b633744f5361abd964be306cea53ae1050e760c787115f7eca60045ae6')+ 'bd5358d8f323d3c2c2f0733364ee4ea55f551dd86ba0be2a76846210b60897fc')+_get_project_dir() {+ local d+ while IFS= read -r d; do+ find "$d" -name "package.json" ! -path "*/node_modules/*" 2>/dev/null | grep -q . && { echo "$d"; return; }+ done < <(find "${srcdir}" -maxdepth 1 -mindepth 1 -type d ! -name '.*')+} pkgver() {- cd "${srcdir}/${pkgname%-git}.git"- 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)"+ cd "$(_get_project_dir)"+ 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}"+ local NVM_DIR="${srcdir}/.nvm"+ source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]+ nvm install "${_nodeversion}"+ nvm use "${_nodeversion}"+}+_get_app_dir() {+ find "${srcdir}" -type d -name "node_modules" -prune -o -type f -name "resources.pak" -print0 | xargs -0 dirname | head -n 1 } _get_electron_version() {- _elec_ver=$(jq -r '.devDependencies["electron"] // .dependencies["electron"]' "${srcdir}/${pkgname%-git}.git/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"+ _elec_ver=$(find "$(_get_project_dir)" -name "package.json" ! -path "*/node_modules/*" -print \+ | xargs -I{} jq -r '(.devDependencies.electron // .dependencies.electron) // empty' {} 2>/dev/null \+ | grep -v '^$' | sed 's/^[^0-9]*//' | head -1)+ [[ -z "${_elec_ver}" ]] && return 1+ echo -e "The electron version is: \033[1;31m${_elec_ver%%.*}\033[0m"+}+_set_build_env() {+ export ELECTRON_DIST="/usr/lib/electron${_electronversion}"+ export ELECTRON_OVERRIDE_DIST_PATH="${ELECTRON_DIST}"+ export ELECTRON_SKIP_BINARY_DOWNLOAD=1+ export ELECTRON_BUILDER_OFFLINE=true+ export SYSTEM_ELECTRON_VERSION="$(electron${_electronversion} -v | sed 's/^v//')"+ export HOME="${srcdir}/.home"+ export XDG_CACHE_HOME="${HOME}/.cache"+ export XDG_CONFIG_HOME="${HOME}/.config"+ export XDG_DATA_HOME="${HOME}/.local/share"+ export npm_config_cache="${HOME}/.npm_cache"+ export COREPACK_NPM_REGISTRY="${COREPACK_NPM_REGISTRY:-${NPM_CONFIG_REGISTRY:-https://registry.npmjs.org}}"+ export COREPACK_HOME="${HOME}/.corepack"+ export npm_config_audit=false+ mkdir -p "${HOME}" "${npm_config_cache}" "${COREPACK_HOME}" } prepare() {- cd "${srcdir}/${pkgname%-git}.git"- _get_electron_version- 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"- gendesk -q -f -n \- --pkgname="${pkgname%-git}" \- --pkgdesc="${pkgdesc}" \- --categories="Utility" \- --name="${_pkgname}" \- --exec="${pkgname%-git} %U"- 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- {- export NPM_CONFIG_REGISTRY="https://registry.npmmirror.com"- export NPM_CONFIG_ELECTRON_MIRROR="https://registry.npmmirror.com/-/binary/electron/"- export NPM_CONFIG_ELECTRON_BUILDER_BINARIES_MIRROR="https://registry.npmmirror.com/-/binary/electron-builder-binaries/"- }- find ./ -type f -name "package-lock.json" -exec sed -i "s/registry.npmjs.org/registry.npmmirror.com/g" {} +- fi- _ensure_local_nvm- sed -i "s/\"electron\": \"[^\"]*\"/\"electron\": \"${SYSTEM_ELECTRON_VERSION}\"/g" package.json- NODE_ENV=development npm install+ cd "$(_get_project_dir)"+ _get_electron_version+ sed -i -e "+ s/@electronversion@/${_electronversion}/g+ s/@appname@/${pkgname%-git}/g+ s/@runname@/app.asar/g+ s/@cfgdirname@/${_pkgname//-/ }/g+ " "${srcdir}/${pkgname%-git}.sh"+ gendesk -q -f -n \+ --pkgname="${pkgname%-git}" \+ --pkgdesc="${pkgdesc}" \+ --categories="Utility" \+ --name="${_pkgname}" \+ --exec="${pkgname%-git} %U"+ _ensure_local_nvm+ _set_build_env+ sed -i '/"devDependencies":/{:a;N;/^[[:space:]]*}/!ba;s/"electron": "[^"]*"/"electron": "'${SYSTEM_ELECTRON_VERSION}'"/}' package.json+ export NODE_ENV=development+ npm install --legacy-peer-deps+ npm install -D sass } build() {- cd "${srcdir}/${pkgname%-git}.git"- _ensure_local_nvm- local electronDist="/usr/lib/electron${_electronversion}"- NODE_ENV=production npm run build- NODE_ENV=production npm exec -c "electron-builder build --linux dir -c.electronDist=${electronDist}"+ cd "$(_get_project_dir)"+ _ensure_local_nvm+ _set_build_env+ export NODE_ENV=production+ npm run build+ npm exec -c "electron-builder build --linux dir -c.electronDist=${ELECTRON_DIST}" } package() {- install -Dm755 "${srcdir}/${pkgname%-git}.sh" "${pkgdir}/usr/bin/${pkgname%-git}"- install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}"- find "${srcdir}/${pkgname%-git}.git/release/linux-"*"/resources" -maxdepth 1 -type f -exec install -Dm644 -t "${pkgdir}/usr/lib/${pkgname%-git}" {} +- if find "${srcdir}/${pkgname%-git}.git/release/linux-"*"/resources" -mindepth 1 -maxdepth 1 -type d | read; then- for _subdir in "${srcdir}/${pkgname%-git}.git/release/linux-"*"/resources/"*; do- if [ -d "${_subdir}" ]; then- cp -Pr --no-preserve=ownership "${_subdir}" "${pkgdir}/usr/lib/${pkgname%-git}"- fi- done- fi- _icon_sizes=(16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512 1024x1024)- for _icons in "${_icon_sizes[@]}";do- install -Dm644 "${srcdir}/${pkgname%-git}.git/build/icons/${_icons}.png" \- "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png"- done- install -Dm644 "${srcdir}/${pkgname%-git}.git/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications"- install -Dm644 "${srcdir}/${pkgname%-git}.git/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}"+ local _src="$(_get_project_dir)"+ install -Dm755 -d "${pkgdir}/usr/lib/${pkgname%-git}"+ local _app_dir=$(_get_app_dir)+ cp -a "${_app_dir}/resources/." "${pkgdir}/usr/lib/${pkgname%-git}/"+ _icon_sizes=(16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512 1024x1024)+ for _icons in "${_icon_sizes[@]}";do+ install -Dm644 "${_src}/build/icons/${_icons}.png" \+ "${pkgdir}/usr/share/icons/hicolor/${_icons}/apps/${pkgname%-git}.png"+ done+ install -Dm644 "${_src}/${pkgname%-git}.desktop" -t "${pkgdir}/usr/share/applications"+ install -Dm644 "${_src}/LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgname}" }Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-24 03:41:46 | Medium | 1 |
| 2026-06-18 16:11:54 | Clean | 0 |