X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=misc%2Fhdw-tools%2Fhdw-get;h=7f2d1e6202cde775ae18b47813355ac7e272f162;hb=f5392ac6a08f8ee45154ab0ce31db7ed6a668920;hp=fa08cb16e38c340b92f5e79f7c3783193ad014a3;hpb=e6cbadee3fa9e3e04c70d6d652a64d7025936695;p=hdw-linux%2Fhdw-linux.git diff --git a/misc/hdw-tools/hdw-get b/misc/hdw-tools/hdw-get index fa08cb1..7f2d1e6 100644 --- a/misc/hdw-tools/hdw-get +++ b/misc/hdw-tools/hdw-get @@ -11,12 +11,14 @@ usage() { echo "usage:" echo "$0 [install/remove] [root] [package]" echo "$0 [dist-install] [root] [dist file]" + echo "$0 [update]" echo echo "options:" echo "-v tell me whats going on" echo "-a auto resolve deps, do not prompt user" echo "-no-dep do not care for dependencies (used by hdw-get itself)" echo "-s simulation only, do not install/remove packages" + echo "-b base package, not listed in hdw-get.db" echo } @@ -26,6 +28,8 @@ d_install="" ; install="" verbose="" ; no_dep="" auto_resolve_deps="" simulate="" +base="" +answer="y" FL_DIR="var/adm/flists" DEPS_DIR="var/adm/deps/run" @@ -46,6 +50,7 @@ while [ "$1" ] ; do -a) auto_resolve_deps="1" ; shift 1 ;; -no-dep) no_dep="1" ; shift 1 ;; -s) simulate="1" ; shift 1 ;; + -b) base="1" ; no_dep="1" ; shift 1;; *) usage ; exit 1 ;; esac done @@ -175,20 +180,23 @@ elif [ "$install" = "1" ] ; then fi # package in database? - if [ "`grep "^$pkg\ -" $DBF`" = "" ] ; then - echo "sorry, package $package not found ..." - echo "(use 'hdw-get update' to update database)" - exit 1 + if [ -z $base ] ; then + if [ "`grep "^$pkg\ -" $DBF`" = "" ] ; then + echo "sorry, package $package not found ..." + echo "(use 'hdw-get update' to update database)" + exit 1 + fi fi # check for runtime deps - if [ -z $no_deps ] ; then + if [ -z $no_dep ] ; then deps="`grep "^$pkg\ -" $DBF | sed 's/.* -//'`" udeps="" tudeps="" for dep in $deps; do - [ ! -f $inst_root/$FL_DIR/$dep-* ] && \ - udeps="$dep $udeps" + [ ! -f $inst_root/$FL_DIR/$dep-[0-9]* ] && \ + [ "$pkg" != "$dep" ] && \ + udeps="$dep $udeps" done while [ "$udeps" != "$tudeps" ] ; do tudeps="$udeps" @@ -202,26 +210,29 @@ elif [ "$install" = "1" ] ; then [ "$i" = "$dep" ] && exists=1 done [ "$exists" = "0" ] && \ - udeps="$udeps $dep" + [ "$dep" != "$pkg" ] && \ + udeps="$udeps $dep" done done done - echo "$pkg depends on the following uninstalled packages:" - echo "$udeps" - echo - echo "continue? [y,n] (default 'n')" - if [ -z $auto_resolve_deps ] ; then - read answer - if [ "$answer" = "y" ] ; then - for i in $udeps; do - [ "$simulate" != "1" ] && \ - $0 -no-dep install $inst_root $i - done + if [ -n "$udeps" ] ; then + echo "$pkg has unresolved dependencies:" + echo "-> $udeps <-" + echo + echo "continue? [y,n] (default 'n')" + if [ -z $auto_resolve_deps ] ; then + read answer + if [ "$answer" = "y" ] ; then + for i in $udeps; do + [ "$simulate" != "1" ] && \ + $0 -no-dep install $inst_root $i + done + fi fi fi fi - if [ "$simulate" != "1" ] ; then + if [ "$simulate" != "1" -a "$answer" != "n" ] ; then # check/install package if [ -f $package ] ; then @@ -271,7 +282,9 @@ elif [ "$d_install" = "1" ] ; then # install all distribution related packages for package in `cat $dist_file`; do # execute myelf - $0 install $inst_root $package + auto="" + [ "$auto_resolve_deps" = "1" ] && auto="-a" + $0 $auto -b install $inst_root $package done fi fi