Compare commits

...

5 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
Christian Heusel
01757e6904 fix(commitpkg): Quiet git ls-files output
So far all files in `needsversioning=(...)` have been printed to the
command line if they were found, which is not useful, especially now
that we have more files present there.

It makes sense however to keep the standard error output, as this gives
a actionable suggestion what one should to to fix the issue:

    > error: pathspec 'PKGBUILD' did not match any file(s) known to git
    > Did you forget to 'git add'?

Fixes #281

Signed-off-by: Christian Heusel <christian@heusel.eu>
2025-08-01 11:26:57 +02:00
Daniel M. Capella
c5fe8ff3e6 feat(license): Extend matches for sysusers/tmpfiles configs
Eg. to match:
- sysusers.conf
- $pkgname.sysusers
- $pkgname.sysusers.conf
2025-07-28 23:38:32 -04: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
7 changed files with 15 additions and 8 deletions

View File

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

View File

@@ -90,7 +90,11 @@ if [[ ${arch[0]} == 'any' ]]; then
fi fi
STARTDIR=$(pwd) 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) TEMPDIR=$(mktemp -d --tmpdir checkpkg-script.XXXX)
for _pkgname in "${pkgname[@]}"; do for _pkgname in "${pkgname[@]}"; do

View File

@@ -155,7 +155,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then if [[ ! -f "${file}" ]]; then
continue continue
fi fi
if ! git ls-files --error-unmatch "$file"; then if ! git ls-files --error-unmatch "$file" >/dev/null; then
die "%s is not under version control" "$file" die "%s is not under version control" "$file"
fi fi
done done

View File

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

View File

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

View File

@@ -191,7 +191,9 @@ path = [
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",
"*sysusers.conf",
"*.tmpfiles", "*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate", "*.logrotate",
"*.pam", "*.pam",
"*.service", "*.service",

View File

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