# HG changeset patch # User Christophe Lincoln # Date 1489132675 -3600 # Node ID 66fa352226c49345ec888f4f4ded65c8f60683ac # Parent d86e4e894a97441e1391401f1fffdae50bf9d5e1 Improve update diff -r d86e4e894a97 -r 66fa352226c4 libsup.sh --- a/libsup.sh Fri Mar 10 00:00:36 2017 +0100 +++ b/libsup.sh Fri Mar 10 08:57:55 2017 +0100 @@ -98,7 +98,7 @@ # System dependencies: exit on missing system deps ? check_sys_deps() { . /etc/slitaz/slitaz.conf # PKGS_DB - for dep in ${DEPENDS}; do + for dep in ${@}; do if [ ! -d "$PKGS_DB/installed/$dep" ]; then gettext "Missing dependency:"; colorize 31 " $dep"; return 1 fi @@ -129,7 +129,7 @@ sup -i "$dep" fi done - check_sys_deps + check_sys_deps "$DEPENDS" # Remove existing package files to avoid untracked files if [ -d "$installed/$PACKAGE" ]; then @@ -161,14 +161,16 @@ gettext "Creating the list of installed files..."; echo fi files_list="${cache}/install/${PACKAGE}-${VERSION}/files.list" + cd ${cache}/install/${PACKAGE}-${VERSION}/files find . -type f -print > ${files_list} find . -type l -print >> ${files_list} - sed -i sed s'/^.//'g ${files_list} + sed -i s'/^.//'g ${files_list} # Back to pkg tree cd ${cache}/install/${PACKAGE}-${VERSION} echo "sup_size=\"$(du -sh files | cut -d " " -f 1)\"" >> receip echo "md5_sum=\"${md5sum}\"" >> receip + separator "-" # Now we need a place to store package data and set $sup_size echo -n "$(colorize 036 $(gettext 'Installing files:'))" diff -r d86e4e894a97 -r 66fa352226c4 sup --- a/sup Fri Mar 10 00:00:36 2017 +0100 +++ b/sup Fri Mar 10 08:57:55 2017 +0100 @@ -30,12 +30,12 @@ $(boldify $(gettext "Usage:")) $(basename $0) [command|package] [package] $(boldify $(gettext "Commands:")) - -c cook $(gettext "Cook a package from the wok") - -r run $(gettext "Run sup_install without installing") - -e extract $(gettext "Extract a package to current dir") -i install $(gettext "Install a new package") -u update $(gettext "Update installed package") -r remove $(gettext "Remove an installed package") + -c cook $(gettext "Cook a package from the wok") + run $(gettext "Run sup_install without installing") + -e extract $(gettext "Extract a package to current dir") -n new $(gettext "Create a new SUP package :-)") -l list $(gettext "List packages: installed/wok/db") -s search $(gettext "Search for packages in the database") @@ -172,7 +172,7 @@ echo "$(gettext 'Packages:') $(colorize 035 $supfile) ($size)" rm -rf ${cache} && newline ;; - -r|run) + run) # Run sup_install() without any installation to help package creation pkg="$2" receip="$wok/$pkg/receip" @@ -292,10 +292,10 @@ gettext "Checking packages.sql..." db_sum=$(wget -q "${server}?sup=dbsum" -O -) if echo "$db_sum $pkgsdb" | md5sum -s -c -; then - indent $(($(tty_size) - 13)) "[ $(colorize 036 synced) ]" + info 036 "synced" else [ "$online" ] && rm -f ${pkgsdb} - indent $(($(tty_size) - 13)) "[ $(colorize 035 update) ]" + info 035 "update" fi # --force @@ -310,7 +310,12 @@ | awk '{printf $1 " " $2}') gettext "Database timestamp:" indent $(($(tty_size) - 23)) "[ $(colorize 30 $timestamp) ]" - log "$(gettext 'Updated packages database: $timestamp') " + log "$(gettext 'Updated packages database:') $timestamp" + fi + + # Exit now if no packages.sql + if [ ! -f "$pkgsdb" ]; then + gettext "Please try later. Missing packages database"; echo; exit 1 fi # Scan installed packages @@ -319,34 +324,40 @@ in=$((7 + ${char})) gettext "Installed packages:" - indent $(($(tty_size) - ${in})) "[ $(colorize 033 $count) ]" - cat << EOT + info 033 "$count"; newline + echo -n $(boldify $(gettext "Package") $(indent 30 $(gettext "Version"))) + info 40 $(gettext "Status") + separator "-" -$(boldify $(gettext "Package") $(indent 30 $(gettext "Version")) \ -$(indent 60 $(gettext "Status"))) -$(separator "-") -EOT for pkg in $(ls $installed) do . ${installed}/${pkg}/receip - db_sum=$(sqlite3 ${pkgsdb} \ - "SELECT md5sum FROM pkgs WHERE name = '$pkg'") - # MD5sum not matching: new version our new build ? - if [ "$md5_sum" != "$db_sum" ]; then - - vers=$(sqlite3 ${pkgsdb} \ - "SELECT version FROM pkgs WHERE name = '$pkg'") + name=$(sqlite3 ${pkgsdb} \ + "SELECT name FROM pkgs WHERE name = '$pkg'") + if [ ! "$name" ]; then + #echo -n "$pkg $(indent 30 $VERSION)" + #info 036 "$(gettext "local")" + continue + else + db_sum=$(sqlite3 ${pkgsdb} \ + "SELECT md5sum FROM pkgs WHERE name = '$pkg'") - if [ "$VERSION" != "$vers" ]; then - status="$(colorize 032 $(gettext "update") )" - else - status="$(colorize 035 $(gettext "rebuilt"))" + # MD5sum not matching: new version our new build ? + if [ "$md5_sum" != "$db_sum" ]; then + echo -n "$pkg $(indent 30 $VERSION)" + vers=$(sqlite3 ${pkgsdb} \ + "SELECT version FROM pkgs WHERE name = '$pkg'") + + if [ "$VERSION" != "$vers" ]; then + info 032 "$(gettext "$vers")" + else + info 035 "$(gettext "rebuilt")" + fi + echo "$pkg" >> ${cache}/updates fi - echo "$pkg $(indent 30 $VERSION) $(indent 60 $status)" - echo "$pkg" >> ${cache}/updates fi - + unset name db_sum vers done if [ -f "$cache/updates" ]; then