Compare commits

...

3 Commits

Author SHA1 Message Date
Jakub Klinkovský
567e588ecf Merge branch 'trap' into 'master'
fix: avoid overriding traps set up by the setup_workdir function

See merge request archlinux/devtools!247
2025-08-08 16:48:17 +00:00
Jakub Klinkovský
fc56ebedf3 fix(completion): fix bash completion for the license subcommand
Signed-off-by: Jakub Klinkovský <lahwaacz@archlinux.org>
2025-08-05 17:48:12 +02:00
Jakub Klinkovský
6370142696 Avoid overriding traps set up by the setup_workdir function
Bash traps for each signal are not composable, but rather override each
other. Scripts should either place their temporary files in the common
$WORKDIR and rely on the common traps to do the cleanup, or call the
common trap_abort/trap_exit functions from the new traps.
2025-07-18 19:08:52 +00:00
5 changed files with 12 additions and 7 deletions

View File

@@ -150,6 +150,7 @@ _pkgctl_cmds=(
db
diff
issue
license
release
repo
search

View File

@@ -90,7 +90,11 @@ if [[ ${arch[0]} == 'any' ]]; then
fi
STARTDIR=$(pwd)
(( RMDIR )) && trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT
if (( RMDIR )); then
# lib/common.sh sets up traps for cleanup, the following will override them
trap 'rm -rf "$TEMPDIR"; trap_abort' INT QUIT TERM HUP
trap 'rm -rf "$TEMPDIR"; trap_exit' EXIT
fi
TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX)
for _pkgname in "${pkgname[@]}"; do

View File

@@ -182,8 +182,8 @@ elif [[ -r "$HOME/.makepkg.conf" ]]; then
fi
STARTDIR=$(pwd)
trap 'rm -rf $TMPDIR' EXIT INT TERM QUIT
TMPDIR=$(mktemp -d --tmpdir diffpkg-script.XXXXXXXX)
[[ -z ${WORKDIR:-} ]] && setup_workdir
TMPDIR=$(mktemp -d --tmpdir="$WORKDIR" diffpkg-script.XXXXXXXX)
export TMPDIR
tar_list() {

View File

@@ -50,8 +50,8 @@ if (( ${#validpgpkeys[@]} == 0 )); then
exit 0
fi
trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT
TEMPDIR=$(mktemp -d --tmpdir export-pkgbuild-keys.XXXXXXXXXX)
[[ -z ${WORKDIR:-} ]] && setup_workdir
TEMPDIR=$(mktemp -d --tmpdir="$WORKDIR" export-pkgbuild-keys.XXXXXXXXXX)
mkdir -p keys/pgp
error=0

View File

@@ -242,8 +242,8 @@ for fname in "${installed[@]}"; do
fi
done
trap 'rm -rf $TEMPDIR' EXIT INT TERM QUIT
TEMPDIR=$(mktemp -d --tmpdir makerepropkg.XXXXXXXXXX)
[[ -z ${WORKDIR:-} ]] && setup_workdir
TEMPDIR=$(mktemp -d --tmpdir="$WORKDIR" makerepropkg.XXXXXXXXXX)
makepkg_conf="${TEMPDIR}/makepkg.conf"
# anything before buildtool support is pinned to the last none buildtool aware release