[arch-projects] [PATCH] Add an option to explicitly run namcap
Installs namcap if needed, *after* building the package, contrary to the former way of having to have namcap installed, e.g. via makedepends. Signed-off-by: Jan Steffens <jan.steffens@gmail.com> --- makechrootpkg | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/makechrootpkg b/makechrootpkg index a60c9fe..974628c 100755 --- a/makechrootpkg +++ b/makechrootpkg @@ -18,6 +18,7 @@ update_first='0' clean_first='0' install_pkg='' add_to_db=0 +run_namcap=0 chrootdir='' @@ -54,11 +55,12 @@ usage() { echo '-I <pkg> Install a package into the working copy of the chroot' echo '-l <copy> The directory to use as the working copy of the chroot' echo ' Useful for maintaining multiple copies.' + echo '-n Run namcap on the package' echo " Default: $default_copy" exit 1 } -while getopts 'hcudr:I:l:' arg; do +while getopts 'hcudr:I:l:n' arg; do case "${arg}" in h) usage ;; c) clean_first=1 ;; @@ -67,6 +69,7 @@ while getopts 'hcudr:I:l:' arg; do r) chrootdir="$OPTARG" ;; I) install_pkg="$OPTARG" ;; l) copy="$OPTARG" ;; + n) run_namcap=1 ;; *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; esac done @@ -175,6 +178,8 @@ if [ "$REPACK" != "1" ]; then rm -rf "$copydir/build/"* fi +[ "$run_namcap" -eq "1" ] && touch "$copydir/build/RUN_NAMCAP" + # Read .makepkg.conf even if called via sudo if [ -n "${SUDO_USER}" ]; then makepkg_conf="/$(eval echo ~${SUDO_USER})/.makepkg.conf" @@ -257,7 +262,10 @@ cd /build export HOME=/build sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED [ -f BUILD_FAILED ] && exit 1 -which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +if [ -f RUN_NAMCAP ]; then + pacman -S --needed --noconfirm namcap + namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +fi exit 0 EOF ) > "$copydir/chrootbuild" @@ -303,3 +311,5 @@ if [ -e "${copydir}/build/BUILD_FAILED" ]; then rm "${copydir}/build/BUILD_FAILED" exit 1 fi + +# vim:set noet ts=8 sw=8: -- 1.7.6.1
On Sat, Sep 17, 2011 at 10:26:20AM +0200, Jan Steffens wrote:
Installs namcap if needed, *after* building the package, contrary to the former way of having to have namcap installed, e.g. via makedepends.
Signed-off-by: Jan Steffens <jan.steffens@gmail.com> --- makechrootpkg | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/makechrootpkg b/makechrootpkg index a60c9fe..974628c 100755 --- a/makechrootpkg +++ b/makechrootpkg @@ -18,6 +18,7 @@ update_first='0' clean_first='0' install_pkg='' add_to_db=0 +run_namcap=0
chrootdir=''
@@ -54,11 +55,12 @@ usage() { echo '-I <pkg> Install a package into the working copy of the chroot' echo '-l <copy> The directory to use as the working copy of the chroot' echo ' Useful for maintaining multiple copies.' + echo '-n Run namcap on the package' echo " Default: $default_copy" exit 1 }
-while getopts 'hcudr:I:l:' arg; do +while getopts 'hcudr:I:l:n' arg; do case "${arg}" in h) usage ;; c) clean_first=1 ;; @@ -67,6 +69,7 @@ while getopts 'hcudr:I:l:' arg; do r) chrootdir="$OPTARG" ;; I) install_pkg="$OPTARG" ;; l) copy="$OPTARG" ;; + n) run_namcap=1 ;; *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; esac done @@ -175,6 +178,8 @@ if [ "$REPACK" != "1" ]; then rm -rf "$copydir/build/"* fi
+[ "$run_namcap" -eq "1" ] && touch "$copydir/build/RUN_NAMCAP"
Please use "(( $run_namcap ))" or "[[ -n $run_namcap ]]" here. There were a couple of patches fixing scripts that still used the old syntax lately. makechrootpkg wasn't attacked yet but new patches should try to stick to the bashier way.
+ # Read .makepkg.conf even if called via sudo if [ -n "${SUDO_USER}" ]; then makepkg_conf="/$(eval echo ~${SUDO_USER})/.makepkg.conf" @@ -257,7 +262,10 @@ cd /build export HOME=/build sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED [ -f BUILD_FAILED ] && exit 1 -which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +if [ -f RUN_NAMCAP ]; then
Same here. "[[ -f RUN_NAMCAP ]]".
+ pacman -S --needed --noconfirm namcap + namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +fi exit 0 EOF ) > "$copydir/chrootbuild" @@ -303,3 +311,5 @@ if [ -e "${copydir}/build/BUILD_FAILED" ]; then rm "${copydir}/build/BUILD_FAILED" exit 1 fi + +# vim:set noet ts=8 sw=8:
I don't see any reason to introduce a modeline here. If we want that, it should be done in a separate patch, and for all scripts at once.
-- 1.7.6.1
On Sat, Sep 17, 2011 at 1:48 PM, Lukas Fleischer <archlinux@cryptocrack.de> wrote:
Please use "(( $run_namcap ))" or "[[ -n $run_namcap ]]" here. There were a couple of patches fixing scripts that still used the old syntax lately. makechrootpkg wasn't attacked yet but new patches should try to stick to the bashier way.
I'll try to give makechrootpkg a syntactic overhaul. What about using "var=true" and "var=false" and just doing "if $var; then"? Seems simpler to me than using integers.
On Sat, Sep 17, 2011 at 1:48 PM, Lukas Fleischer <archlinux@cryptocrack.de> wrote:
On Sat, Sep 17, 2011 at 10:26:20AM +0200, Jan Steffens wrote:
Installs namcap if needed, *after* building the package, contrary to the former way of having to have namcap installed, e.g. via makedepends.
Signed-off-by: Jan Steffens <jan.steffens@gmail.com> --- makechrootpkg | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/makechrootpkg b/makechrootpkg index a60c9fe..974628c 100755 --- a/makechrootpkg +++ b/makechrootpkg @@ -18,6 +18,7 @@ update_first='0' clean_first='0' install_pkg='' add_to_db=0 +run_namcap=0
chrootdir=''
@@ -54,11 +55,12 @@ usage() { echo '-I <pkg> Install a package into the working copy of the chroot' echo '-l <copy> The directory to use as the working copy of the chroot' echo ' Useful for maintaining multiple copies.' + echo '-n Run namcap on the package' echo " Default: $default_copy" exit 1 }
-while getopts 'hcudr:I:l:' arg; do +while getopts 'hcudr:I:l:n' arg; do case "${arg}" in h) usage ;; c) clean_first=1 ;; @@ -67,6 +69,7 @@ while getopts 'hcudr:I:l:' arg; do r) chrootdir="$OPTARG" ;; I) install_pkg="$OPTARG" ;; l) copy="$OPTARG" ;; + n) run_namcap=1 ;; *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; esac done @@ -175,6 +178,8 @@ if [ "$REPACK" != "1" ]; then rm -rf "$copydir/build/"* fi
+[ "$run_namcap" -eq "1" ] && touch "$copydir/build/RUN_NAMCAP"
Please use "(( $run_namcap ))" or "[[ -n $run_namcap ]]" here. There were a couple of patches fixing scripts that still used the old syntax lately. makechrootpkg wasn't attacked yet but new patches should try to stick to the bashier way.
+ # Read .makepkg.conf even if called via sudo if [ -n "${SUDO_USER}" ]; then makepkg_conf="/$(eval echo ~${SUDO_USER})/.makepkg.conf" @@ -257,7 +262,10 @@ cd /build export HOME=/build sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED [ -f BUILD_FAILED ] && exit 1 -which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +if [ -f RUN_NAMCAP ]; then
Same here. "[[ -f RUN_NAMCAP ]]".
+ pacman -S --needed --noconfirm namcap + namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +fi exit 0 EOF ) > "$copydir/chrootbuild" @@ -303,3 +311,5 @@ if [ -e "${copydir}/build/BUILD_FAILED" ]; then rm "${copydir}/build/BUILD_FAILED" exit 1 fi + +# vim:set noet ts=8 sw=8:
I don't see any reason to introduce a modeline here. If we want that, it should be done in a separate patch, and for all scripts at once.
-- 1.7.6.1
Started rewriting: https://github.com/heftig/devtools/commits/master Comments welcome.
On Sat, Sep 17, 2011 at 04:43:33PM +0200, Jan Steffens wrote:
On Sat, Sep 17, 2011 at 1:48 PM, Lukas Fleischer <archlinux@cryptocrack.de> wrote:
On Sat, Sep 17, 2011 at 10:26:20AM +0200, Jan Steffens wrote:
Installs namcap if needed, *after* building the package, contrary to the former way of having to have namcap installed, e.g. via makedepends.
Signed-off-by: Jan Steffens <jan.steffens@gmail.com> --- makechrootpkg | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/makechrootpkg b/makechrootpkg index a60c9fe..974628c 100755 --- a/makechrootpkg +++ b/makechrootpkg @@ -18,6 +18,7 @@ update_first='0' clean_first='0' install_pkg='' add_to_db=0 +run_namcap=0
chrootdir=''
@@ -54,11 +55,12 @@ usage() { echo '-I <pkg> Install a package into the working copy of the chroot' echo '-l <copy> The directory to use as the working copy of the chroot' echo ' Useful for maintaining multiple copies.' + echo '-n Run namcap on the package' echo " Default: $default_copy" exit 1 }
-while getopts 'hcudr:I:l:' arg; do +while getopts 'hcudr:I:l:n' arg; do case "${arg}" in h) usage ;; c) clean_first=1 ;; @@ -67,6 +69,7 @@ while getopts 'hcudr:I:l:' arg; do r) chrootdir="$OPTARG" ;; I) install_pkg="$OPTARG" ;; l) copy="$OPTARG" ;; + n) run_namcap=1 ;; *) MAKEPKG_ARGS="$MAKEPKG_ARGS -$arg $OPTARG" ;; esac done @@ -175,6 +178,8 @@ if [ "$REPACK" != "1" ]; then rm -rf "$copydir/build/"* fi
+[ "$run_namcap" -eq "1" ] && touch "$copydir/build/RUN_NAMCAP"
Please use "(( $run_namcap ))" or "[[ -n $run_namcap ]]" here. There were a couple of patches fixing scripts that still used the old syntax lately. makechrootpkg wasn't attacked yet but new patches should try to stick to the bashier way.
+ # Read .makepkg.conf even if called via sudo if [ -n "${SUDO_USER}" ]; then makepkg_conf="/$(eval echo ~${SUDO_USER})/.makepkg.conf" @@ -257,7 +262,10 @@ cd /build export HOME=/build sudo -u nobody makepkg $MAKEPKG_ARGS || touch BUILD_FAILED [ -f BUILD_FAILED ] && exit 1 -which namcap &>/dev/null && namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +if [ -f RUN_NAMCAP ]; then
Same here. "[[ -f RUN_NAMCAP ]]".
+ pacman -S --needed --noconfirm namcap + namcap /build/PKGBUILD /pkgdest/*.pkg.tar.* > /build/namcap.log +fi exit 0 EOF ) > "$copydir/chrootbuild" @@ -303,3 +311,5 @@ if [ -e "${copydir}/build/BUILD_FAILED" ]; then rm "${copydir}/build/BUILD_FAILED" exit 1 fi + +# vim:set noet ts=8 sw=8:
I don't see any reason to introduce a modeline here. If we want that, it should be done in a separate patch, and for all scripts at once.
-- 1.7.6.1
Started rewriting: https://github.com/heftig/devtools/commits/master
Comments welcome.
There's a couple of more things that could be bashified (particularly basename(1) and all the grep(1) and sed(1) invocations used in command substitutions, since most of them can be replaced with bash parameter expansion magic [1], [2], [3]). Apart from that, looks okay at a glance. [1] http://projects.archlinux.org/devtools.git/commit/?id=7952d6fb [2] http://projects.archlinux.org/devtools.git/commit/?id=3c175e98 [3] http://projects.archlinux.org/devtools.git/commit/?id=5688152f
participants (2)
-
Jan Steffens
-
Lukas Fleischer