diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2013-05-03 20:01:32 +0200 |
---|---|---|
committer | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2013-05-11 12:26:16 +0200 |
commit | 4937422fcfd7ad2b3babe7621f201ba4376ed4cd (patch) | |
tree | d96930526629a0448abcf9698e55750bdd67fd49 /makechrootpkg.in | |
parent | 4dcdbcaf1eff0962522a04710817156ce4d44b9e (diff) |
makechrootpkg: Split out chrootbuild into a function
Now syntax highlighting works properly! :D
Diffstat (limited to 'makechrootpkg.in')
-rw-r--r-- | makechrootpkg.in | 70 |
1 files changed, 42 insertions, 28 deletions
diff --git a/makechrootpkg.in b/makechrootpkg.in index 862e6bc..c7baf4d 100644 --- a/makechrootpkg.in +++ b/makechrootpkg.in @@ -237,34 +237,8 @@ EOF # This is a little gross, but this way the script is recreated every time in the # working copy - cat >"$copydir/chrootbuild" <<EOF -#!/bin/bash -. /etc/profile -export HOME=/build -shopt -s nullglob - -# Workaround makepkg disliking read-only dirs -ln -sft /srcdest /srcdest_host/* -ln -sft /startdir /startdir_host/* - -# Keep PKGBUILD writable for pkgver() -rm /startdir/PKGBUILD* -cp /startdir_host/PKGBUILD* /startdir -chown nobody /startdir/PKGBUILD* - -cd /startdir -sudo -u nobody makepkg $makepkg_args || exit 1 - -if $run_namcap; then - pacman -S --needed --noconfirm namcap - for pkgfile in /startdir/PKGBUILD /pkgdest/*; do - echo "Checking \${pkgfile##*/}" - sudo -u nobody namcap "\$pkgfile" 2>&1 | tee "/logdest/\${pkgfile##*/}-namcap.log" - done -fi - -exit 0 -EOF + printf $'#!/bin/bash\n%s\n_chrootbuild %q %q' "$(declare -f _chrootbuild)" \ + "$makepkg_args" "$run_namcap" >"$copydir/chrootbuild" chmod +x "$copydir/chrootbuild" } @@ -287,6 +261,46 @@ download_sources() { rm -rf $builddir } +_chrootbuild() { + # This function isn't run in makechrootpkg, + # so no global variables + local makepkg_args="$1" + local run_namcap="$2" + + . /etc/profile + export HOME=/build + shopt -s nullglob + + # Workaround makepkg disliking read-only dirs + ln -sft /srcdest /srcdest_host/* + ln -sft /startdir /startdir_host/* + + cd /startdir + + # Keep PKGBUILD writable for pkgver() + rm PKGBUILD* + cp /startdir_host/PKGBUILD* . + chown nobody PKGBUILD* + + # Safety check + if [[ ! -w PKGBUILD ]]; then + echo "Can't write to PKGBUILD!" + exit 1 + fi + + sudo -u nobody makepkg $makepkg_args || exit 1 + + if $run_namcap; then + pacman -S --needed --noconfirm namcap + for pkgfile in /startdir/PKGBUILD /pkgdest/*; do + echo "Checking ${pkgfile##*/}" + sudo -u nobody namcap "$pkgfile" 2>&1 | tee "/logdest/${pkgfile##*/}-namcap.log" + done + fi + + exit 0 +} + move_products() { for pkgfile in "$copydir"/pkgdest/*; do chown "$src_owner" "$pkgfile" |