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

Reply via email to