diff options
Diffstat (limited to 'src/chroot-tools/libremakepkg')
-rwxr-xr-x | src/chroot-tools/libremakepkg | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/chroot-tools/libremakepkg b/src/chroot-tools/libremakepkg index baf8015..d2ce222 100755 --- a/src/chroot-tools/libremakepkg +++ b/src/chroot-tools/libremakepkg @@ -46,12 +46,14 @@ trap_exit() { # # Environment # - $INCHROOT is set -run() { +run() ( local HASNET=true [[ $1 == -N ]] && { HASNET=false; shift; } local copydir=$1; shift local cmd="$*" + trap "rm -f -- '$copydir/chrootexec'" EXIT + cat >"$copydir/chrootexec" <<EOF #!/bin/bash . /etc/profile @@ -70,7 +72,7 @@ EOF $HASNET || flags='-N' librechroot $flags -l "$copydir" run /chrootexec fi -} +) # Usage: add_to_local_repo $copydir $pkgfiles... add_to_local_repo() ( @@ -148,7 +150,7 @@ EOF # - $INCHROOT is set # - $copydir is set # - $LIBREUSER is set -extract() { +extract() ( local user=$LIBREUSER $INCHROOT || user=nobody @@ -156,13 +158,13 @@ extract() { if $INCHROOT; then clean=chcleanup else + trap "rm -f '$copydir/clean'" EXIT cp -a "$(which chcleanup)" "${copydir}/clean" clean=/clean fi run "$copydir" "${clean} && sudo -u ${user} -- makepkg ${makepkg_args} -o" - rm -f "$copydir"/clean -} +) # Usage: build # Builds the package (`makepkg -e`) |