# HG changeset patch # User Pascal Bellard # Date 1325872508 -3600 # Node ID d9880aa3f3e5feac9e79db353c90aa191863e4e8 # Parent c3c1912983817e2acb029a1a03507d3108503faa cook: add setup --reinstall diff -r c3c191298381 -r d9880aa3f3e5 cook --- a/cook Sun Dec 25 15:09:40 2011 +0100 +++ b/cook Fri Jan 06 18:55:08 2012 +0100 @@ -736,6 +736,21 @@ fi } +mkinstall_list() { + local pkg + for pkg in $@ ; do + [ -s /home/slitaz/wok/$pkg/receipt ] || continue + case " $INSTALL_LIST " in + *\ $pkg\ *) ;; + *) unset DEPENDS + . /home/slitaz/wok/$pkg/receipt + INSTALL_LIST="$INSTALL_LIST $pkg" + [ -n "$DEPENDS" ] && mkinstall_list $DEPENDS + echo $pkg + esac + done +} + # # Commands # @@ -765,10 +780,19 @@ separator && cd $SLITAZ init_db_files gettext -e "Checking for packages to install...\n" - for pkg in $SETUP_PKGS - do - [ ! -f "$INSTALLED/$pkg/receipt" ] && tazpkg get-install $pkg - done + case " $@ " in + *\ --reinstall\ *) + INSTALL_LIST="" + for pkg in $(mkinstall_list $SETUP_PKGS); do + tazpkg get-install $pkg --forced + done ;; + *) + for pkg in $SETUP_PKGS + do + [ ! -f "$INSTALLED/$pkg/receipt" ] && + tazpkg get-install $pkg + done ;; + esac # Handle --options case "$2" in