# HG changeset patch # User Pascal Bellard # Date 1267625969 -3600 # Node ID 50b4af64dff1a745116fbc6ff3059b18f3e2c408 # Parent a975792be8c95a1c6d454527054106d8c24da2d1 tazpkgbox: add link support diff -r a975792be8c9 -r 50b4af64dff1 lib/tazpkgbox/list --- a/lib/tazpkgbox/list Fri Feb 26 12:48:18 2010 +0000 +++ b/lib/tazpkgbox/list Wed Mar 03 15:19:29 2010 +0100 @@ -55,12 +55,17 @@ installed_list() { - for pkg in installed/* + for pkg in ${1}installed/* do + [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue . $pkg/receipt ICON=tazpkg-installed [ $CAT == all -o $CATEGORY == $CAT ] || continue - grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add + if [ -n "$1" -o -L $pkg ]; then + ICON=media-flash + else + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add + fi grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" done @@ -99,6 +104,9 @@ case $STATUS in blocked|upgradeable) blocked_list $STATUS;; + linkable) + [ -d fslink ] && installed_list \ + $(readlink fslink)/var/lib/tazpkg/;; installed) installed_list ;; installable) diff -r a975792be8c9 -r 50b4af64dff1 lib/tazpkgbox/package_infos --- a/lib/tazpkgbox/package_infos Fri Feb 26 12:48:18 2010 +0000 +++ b/lib/tazpkgbox/package_infos Wed Mar 03 15:19:29 2010 +0100 @@ -6,6 +6,10 @@ XTERM_OPTS="-geometry 80x16+120+120" PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` +ROOT=/var/lib/tazpkg +if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then + ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT +fi TMP_DIR=/tmp/tazpkg-$$-$RANDOM if [ "$1" = "sizes" ]; then @@ -19,7 +23,7 @@ exit 0 fi if [ "$1" = "info" ]; then - RECEIPT=/var/lib/tazpkg/installed/$3/receipt + RECEIPT=$ROOT/installed/$3/receipt . $RECEIPT case "$2" in Web*) firefox $WEB_SITE &;; @@ -28,7 +32,7 @@ Hand*) firefox $HANDBOOK_URL &;; Sug*) $0 list_packages $SUGGESTED;; Dep*) $0 list_packages $DEPENDS;; - Mod*) $0 list_packages $(xargs echo < /var/lib/tazpkg/installed/$3/modifiers);; + Mod*) $0 list_packages $(xargs echo < $ROOT/installed/$3/modifiers);; Con*) tazpkgbox list_config $3;; Ver*) xterm -T "$3 receipt (q to quit)" -e "cat $RECEIPT | less";; esac @@ -36,18 +40,21 @@ fi if [ "$1" = "list_files" ]; then - AWK_FILTER='BEGIN { ls=0 } { if (/^===/) ls=1-ls; else if (ls) print; }' CONF_FILES="$(tazpkg list-config $2 | awk "$AWK_FILTER")" if [ -n "$CONF_FILES" ]; then mkdir $TMP_DIR - zcat /var/lib/tazpkg/installed/$2/volatile.cpio.gz | \ + zcat $ROOT/installed/$2/volatile.cpio.gz | \ ( cd $TMP_DIR ; cpio -id > /dev/null ) fi - tazpkg list-files $2 | awk "$AWK_FILTER" | while read file; do - echo -n "$(stat -c "%A|%U|%G|%s|%n|" "$file" || \ + cat $ROOT/installed/$2/files.list | grep ^/ | while read file; do + realfile="$file" + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then + realfile="$(readlink /var/lib/tazpkg/fslink)$file" + fi + echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \ echo "File lost !||||$file|")" - if [ -L "$file" ]; then - echo -n "$(readlink "$file")" + if [ -L "$realfile" ]; then + echo -n "$(readlink "$realfile")" elif [ -f "$file" ]; then case "$CONF_FILES" in *$file*) @@ -89,8 +96,8 @@ PKG ' for i in "$@"; do - if [ -d /var/lib/tazpkg/installed/$i ]; then - . /var/lib/tazpkg/installed/$i/receipt + if [ -d $ROOT/installed/$i ]; then + . $ROOT/installed/$i/receipt LIST_PKGS="$LIST_PKGS $i|$VERSION|Installed|$SHORT_DESC " @@ -171,13 +178,13 @@ " # Installed or not installed, that is the question! -if [ -d /var/lib/tazpkg/installed/$PKG ]; then +if [ -d $ROOT/installed/$PKG ]; then PACKED_SIZE="" DEPENDS="" MAINTAINER="" BUGS="" TAGS="" - . /var/lib/tazpkg/installed/$PKG/receipt + . $ROOT/installed/$PKG/receipt MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') upgrade_version="$(cat /var/lib/tazpkg/packages.desc \ /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \ @@ -188,7 +195,7 @@ UPGRADE="$upgrade_version" else cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \ - /var/lib/tazpkg/installed.md5)" + $ROOT/installed.md5)" new_md5="$(cat /var/lib/tazpkg/packages.md5 \ /var/lib/tazpkg/undigest/*/packages.md5 \ 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")" @@ -226,24 +233,25 @@ Tags: | $TAGS" [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS Config files: | $CONFIG_FILES" -[ -f /var/lib/tazpkg/installed/$PKG/modifiers ] && +[ -f $ROOT/installed/$PKG/modifiers ] && PACKAGE_INFOS="$PACKAGE_INFOS - Modified by: | $(xargs echo < /var/lib/tazpkg/installed/$PKG/modifiers)" + Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)" PACKAGE_INFOS="$PACKAGE_INFOS Web site: | $WEB_SITE $0 info \"\$FIELD\" $PKG " -[ -s /var/lib/tazpkg/installed/$PACKAGE/description.txt ] && +[ -s $ROOT/installed/$PACKAGE/description.txt ] && PACKAGE_INFOS="$PACKAGE_INFOS " -[ ${PKG%%-*} = get -a ! -d /var/lib/tazpkg/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS +if [ ! -d /var/lib/tazpkg/fslink ]; then + [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS " -[ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS + [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS " -grep -q post_install /var/lib/tazpkg/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS + grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS " -if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then - PACKAGE_INFOS="$PACKAGE_INFOS + if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then + PACKAGE_INFOS="$PACKAGE_INFOS " -else - PACKAGE_INFOS="$PACKAGE_INFOS + else + PACKAGE_INFOS="$PACKAGE_INFOS " + fi fi -if [ ! -s /var/lib/tazpkg/installed/$PKG/modifiers ]; then +if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then PACKAGE_INFOS="$PACKAGE_INFOS " +elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then + [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS + " + PACKAGE_INFOS="$PACKAGE_INFOS + +" else PACKAGE_INFOS="$PACKAGE_INFOS -" -fi -PACKAGE_INFOS="$PACKAGE_INFOS +" +fi +PACKAGE_INFOS="$PACKAGE_INFOS + + + + readlink /var/lib/tazpkg/fslink + FSLINK + + + + + @@ -510,7 +531,7 @@ xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Repack configs" -geometry 80x25+120+120 -e "tazpkg repack-config ; sleep 5" 2> /dev/null @@ -520,12 +541,12 @@