Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=02033df656f1b3e16f03e115b56a4d8ec46b56c5
commit 02033df656f1b3e16f03e115b56a4d8ec46b56c5 Author: Michel Hermier <[email protected]> Date: Fri Nov 30 18:19:13 2012 +0100 scripts/makepkg * Various fixes (build_file -> BUILDSCRIPT, chroot_name -> CHROOT_NAME), so this variables could be exportable if in the future. diff --git a/scripts/makepkg b/scripts/makepkg index 56fd86a..c361d1c 100755 --- a/scripts/makepkg +++ b/scripts/makepkg @@ -1872,21 +1872,16 @@ _makepkg_buildscript_load() { makepkg_buildscript_usage() { $ECHO "makepkg" $ECHO - $ECHO "Usage: $0 buildscript [buildfile] [options] [--] [command [args]...]" + $ECHO "Usage: $0 buildscript [OPTIONS] [--] BUILDSCRIPT [COMMAND [ARGS]...]" $ECHO $ECHO "Options for sources command:" $ECHO " -h, --help This help" + $ECHO + $ECHO "If no command is given, run '\${SHELL} -i' (default: '/bin/sh -i')." } makepkg_buildscript() { - local consumed buildfile - - if [ -e "$1" ]; then - buildfile="$1" - shift - else - buildfile="$BUILDSCRIPT_DEFAULT" - fi + local consumed while [ $# -gt 0 ]; do consumed=1 @@ -1912,15 +1907,25 @@ makepkg_buildscript() { fi done - if [ ! -f "$buildfile" ]; then - error "$buildfile does not exist." + if [ $# -eq 0 ]; then + error "Argument BUILDSCRIPT is missing" + return 1 + fi + local BUILDSCRIPT="$1" + shift + + if [ ! -f "$BUILDSCRIPT" ]; then + error "$BUILDSCRIPT does not exist." return 1 fi - if ! _makepkg_buildscript_load "$buildfile"; then + if ! _makepkg_buildscript_load "$BUILDSCRIPT"; then # error "$buildfile while errors loading file." return 1 fi + + makepkg_shell "$@" + return $? } makepkg_ccache_usage() { @@ -2002,10 +2007,10 @@ makepkg_chroot_usage() { $ECHO "Usage: $0 chroot [OPTIONS] [--] CHROOT_NAME [COMMAND [ARG]...]" $ECHO $ECHO "Options for chroot command:" - $ECHO " --bind <path> Bind a path between host and chroot" + $ECHO " -b, --bind <path> Bind a path between host and chroot" $ECHO " -f, --force Skip the sanity checks" - $ECHO " --userspec <spec> See chroot userspec option" $ECHO " -h, --help This help" + $ECHO " --userspec <spec> See chroot userspec option" $ECHO $ECHO "If no command is given, run '\${SHELL} -i' (default: '/bin/sh -i')." } @@ -2013,17 +2018,17 @@ makepkg_chroot_usage() { # FIXME: Add chroot lock support makepkg_chroot() { local bind_list=('/dev' '/proc' '/sys') unbind_list - local chroot_args chroot_name + local chroot_args local force local consumed i ret while [ $# -gt 0 ]; do consumed=1 case "$1" in - --bind) bind_list+=("$2"); consumed=2 ;; + -b|--bind) bind_list+=("$2"); consumed=2 ;; -f|--force) force=1 ;; - --userspec) userspec="$2"; consumed=2 ;; -h|--help) makepkg_chroot_usage; return 0 ;; + --userspec) userspec="$2"; consumed=2 ;; # special options --) shift; break;; # End of options --*|-?) makepkg_chroot_usage; return 1 ;; @@ -2048,7 +2053,7 @@ makepkg_chroot() { error "Argument CHROOT_NAME is missing" return 1 fi - chroot_name="$1" + local CHROOT_NAME="$1" shift if [ $force -eq 0 ]; then @@ -2060,8 +2065,8 @@ makepkg_chroot() { ret=0 for i in "${bind_list[@]}"; do - mkdir -p "$CHROOTDIR/$chroot_name/$i" >/dev/null - mount -o bind "$i" "$CHROOTDIR/$chroot_name/$i" >/dev/null + mkdir -p "$CHROOTDIR/$CHROOT_NAME/$i" >/dev/null + mount -o bind "$i" "$CHROOTDIR/$CHROOT_NAME/$i" >/dev/null if [ "$?" -eq 0 ]; then unbind_list+=("$i") else @@ -2075,11 +2080,11 @@ makepkg_chroot() { chroot_args+=("--userspec=$userspec") fi # 'INCHROOT=1' \ - chroot "${chroot_args[@]}" "$CHROOTDIR/$chroot_name" "$@" + chroot "${chroot_args[@]}" "$CHROOTDIR/$CHROOT_NAME" "$@" ret=$? fi for i in "${unbind_list[@]}"; do - umount "$CHROOTDIR/$chroot_name/$i" >/dev/null + umount "$CHROOTDIR/$CHROOT_NAME/$i" >/dev/null if [ "$?" -ne 0 ]; then error "An error occurred while attempting to umount '$i' chroot directory." ret=1 @@ -2098,20 +2103,25 @@ makepkg_chroot_clean_usage() { $ECHO " -d, --destroy Destroy the chroot" $ECHO " -f, --force Skip the sanity checks" $ECHO " -h, --help This help" + $ECHO " -u, --unlocked Do not lock CHROOT_NAME, result may be inacurate" } makepkg_chroot_clean() { + local destroy=0 local force=0 + local locked=1 local consumed while [ $# -gt 0 ]; do consumed=1 case "$1" in + -d|--destroy) destroy=1 ;; -f|--force) force=1 ;; - -h|--help) makepkg_lock_usage; return 0 ;; + -h|--help) makepkg_chroot_clean_usage; return 0 ;; + -u|--unlocked) locked=0 ;; # special options # --) shift; break;; - --*|-?) makepkg_lock_usage; return 1 ;; + --*|-?) makepkg_chroot_clean_usage; return 1 ;; -*) # Combined short options split="$1" shift @@ -2130,13 +2140,18 @@ makepkg_chroot_clean() { fi done - - if [ ! -d "$CHROOTDIR/$i" ]; then - error "$i does not exist, can't clean a non-existing chroot." - continue + if [ $# -eq 0 ]; then + error "Argument CHROOT_NAME is missing" + return 1 fi + local CHROOT_NAME="$1" + shift - chroot_lock + if [ $destroy -eq 0 ]; then + if [ $locked -eq 1 ]; then + makepkg_file_lock --parent "$CHROOTDIR/.lock" "$CHROOTDIR/$CHROOT_NAME/.lock" "$@" + return $? + fi msg "Removing unnecessary packages." for i in "$COREPKGS" do @@ -2157,7 +2172,16 @@ makepkg_chroot_clean() { fi msg "Cleaning chroot." rm -rf $CHROOTDIR/var/tmp/fst/* - chroot_unlock + else + error "IMPLEMENT ME" + return 0 + + if [ $locked -eq 1 ]; then + makepkg_file_lock --parent "$CHROOTDIR/$CHROOT_NAME/.lock" "$CHROOTDIR/.lock" "$@" + return $? + fi + # rm -rf "$CHROOTDIR/$CHROOT_NAME" + fi } makepkg_chroot_create_usage() { @@ -2200,6 +2224,14 @@ makepkg_chroot_create() { exit 1 fi done + + if [ $# -eq 0 ]; then + error "Argument CHROOT_NAME is missing" + return 1 + fi + CHROOT_NAME="$1" + shift + } makepkg_chroot_list_usage() { @@ -2209,15 +2241,20 @@ makepkg_chroot_list_usage() { $ECHO $ECHO "Options for chroot_list command:" $ECHO " -h, --help This help" + $ECHO " -u, --unlocked Do not lock CHROOTDIR, result may be inacurate" } makepkg_chroot_list() { + local locked=1 local consumed + local args=("$@") + while [ $# -gt 0 ]; do consumed=1 case "$1" in -h|--help) makepkg_list_usage; return 0 ;; + -u|--unlocked) locked=0 ;; # special options # --) shift; break;; --*|-?) makepkg_list_usage; return 1 ;; @@ -2238,18 +2275,24 @@ makepkg_chroot_list() { exit 1 fi done + + if [ $locked -eq 1 ]; then + makepkg_file_lock "$CHROOTDIR/.lock" makepkg_chroot_list -u "${args[@]}" + return $? + fi + + return 0 } makepkg_chroot_lock_usage() { $ECHO "makepkg" $ECHO - $ECHO "Usage: $0 chroot_lock [OPTIONS] [--] CHROOT_NAME" + $ECHO "Usage: $0 chroot_lock [OPTIONS] [--] CHROOT_NAME [COMMAND [ARG]...]" $ECHO $ECHO "Options for chroot_lock command:" - $ECHO " -f, --force Skip the sanity checks" $ECHO " -h, --help This help" - $ECHO " --pid Use pid to lock (Usefull when sourced)" - $ECHO " --ppid Use current pid (default)" + $ECHO + $ECHO "If no command is given, run '\${SHELL} -i' (default: '/bin/sh -i')." } makepkg_chroot_lock() { @@ -2259,7 +2302,6 @@ makepkg_chroot_lock() { while [ $# -gt 0 ]; do consumed=1 case "$1" in - -f|--force) force=1 ;; -h|--help) makepkg_lock_usage; return 0 ;; # special options --) shift; break;; @@ -2281,6 +2323,16 @@ makepkg_chroot_lock() { exit 1 fi done + + if [ $# -eq 0 ]; then + error "Argument CHROOT_NAME is missing" + return 1 + fi + local CHROOT_NAME="$1" + shift + + makepkg_file_lock --parent "$CHROOTDIR/.lock" "$CHROOTDIR/$CHROOT_NAME/.lock" "$@" + return $? } makepkg_chroot_unlock_usage() { @@ -2294,6 +2346,40 @@ makepkg_chroot_unlock_usage() { } makepkg_chroot_unlock() { + local force=0 + local consumed + + while [ $# -gt 0 ]; do + consumed=1 + case "$1" in + -h|--help) makepkg_unlock_usage; return 0 ;; +# special options + --) shift; break;; + --*|-?) makepkg_unlock_usage; return 1 ;; + -*) # Combined short options + split="$1" + shift + set -- \ + "$(echo "$split}" | cut -c -2)" \ + "-$(echo "${split}" | cut -c 3-)" \ + "$@" + continue ;; + *) error "Optional parameter \"$1\" has unsupported format" + exit 1 ;; + esac + if ! shift "$consumed"; then + consumed=$(($consumed - 1)) + error "Option $1 expects $consumed argument(s)" + exit 1 + fi + done + + if [ $# -eq 0 ]; then + error "Argument CHROOT_NAME is missing" + return 1 + fi + CHROOT_NAME="$1" + shift } makepkg_depends_usage() { @@ -2667,8 +2753,14 @@ makepkg_main() { build) shift; makepkg_build_cmd "$@" ;; ccache) shift; makepkg_ccache "$@" ;; chroot) shift; makepkg_chroot "$@" ;; + chroot_clean) shift; makepkg_chroot_clean "$@" ;; + chroot_create) shift; makepkg_chroot_create "$@" ;; + chroot_list) shift; makepkg_chroot_list "$@" ;; + chroot_lock) shift; makepkg_chroot_lock "$@" ;; + chroot_unlock) shift; makepkg_chroot_unlock "$@" ;; depends) shift; makepkg_depends "$@" ;; fakeroot) shift; makepkg_fakeroot "$@" ;; + file_lock) shift; makepkg_file_lock "$@" ;; shell) shift; makepkg_shell "$@" ;; *) makepkg_build_cmd "$@" ;; esac _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
