diff --git a/scripts/Emerge-Pkg b/scripts/Emerge-Pkg index d80b9ceb7..5d19c166a 100755 --- a/scripts/Emerge-Pkg +++ b/scripts/Emerge-Pkg @@ -31,6 +31,7 @@ debug=0 ignore_chksum=0 update=1 dryrun=0 +repositories="" # # ---- Functions @@ -43,7 +44,10 @@ help_msg() { echo echo "Usage: ./scripts/Emerge-Pkg" \ "[ -cfg ] [ -dep ] [ -dry-run ]" - echo "$spacer [ -noupdate ] [ -debug ] pkg-name(s)" + echo "$spacer [ -noupdate ] [ -debug ]" + echo "$spacer [ -repository repository-name ]" + echo "$spacer [ pkg-name(s) ]" + echo "pkg-name(s) are only optional if a repository is specified!" echo echo "Type './scripts/Help Emerge-Pkg' for details." echo @@ -64,7 +68,8 @@ while [ "$1" ] ; do -debug) debug=1 ;; -dep) builddep=1 ;; -dry-run) dryrun=1 ;; - -noupdate) update=0 ;; + -noupdate) update=0 ;; + -repository) repositories="$repositories $2" ; shift ;; -*) help_msg ; exit 1 ;; *) break ;; esac @@ -121,7 +126,7 @@ check4update() if [ -f /var/adm/cache/$package ] ; then if ! grep -q BUILDTIME /var/adm/cache/$package ; then [ $debug = 1 ] && \ - echo " $package: Former build was broken." + echo " $package: Former build was broken. Added." addlist="$addlist $package" fi else @@ -205,18 +210,29 @@ BEGIN { ' } +# all packages +deplist="$deplist $@" + +# packages from repositories +for x in $repositories ; do + deplist="$deplist `egrep " $x " config/$config/packages | \ + cut -d ' ' -f 5`" +done + if [ $builddep = 1 ] ; then # we have to create a complete dependency graph ... tmp="`mktemp`" - dep4pkg $1 > $tmp + for x in $deplist ; do + dep4pkg $x >> $tmp + done [ "$debug" = 1 ] && grep '^#' $tmp - deplist="`grep -v '^#' $tmp`" + deplist="$deplist `grep -v '^#' $tmp`" rm $tmp - check4update -else - deplist="$@" fi +# only build packages that need an update +check4update + echo "Packages scheduled to build: $deplist" [ $dryrun = 1 ] && exit