tazpkg rev 326
tazpkgbox: add link support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Mar 03 15:19:29 2010 +0100 (2010-03-03) |
parents | a975792be8c9 |
children | 58396b6c385e |
files | lib/tazpkgbox/list lib/tazpkgbox/package_infos tazpkgbox |
line diff
1.1 --- a/lib/tazpkgbox/list Fri Feb 26 12:48:18 2010 +0000 1.2 +++ b/lib/tazpkgbox/list Wed Mar 03 15:19:29 2010 +0100 1.3 @@ -55,12 +55,17 @@ 1.4 1.5 installed_list() 1.6 { 1.7 - for pkg in installed/* 1.8 + for pkg in ${1}installed/* 1.9 do 1.10 + [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue 1.11 . $pkg/receipt 1.12 ICON=tazpkg-installed 1.13 [ $CAT == all -o $CATEGORY == $CAT ] || continue 1.14 - grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add 1.15 + if [ -n "$1" -o -L $pkg ]; then 1.16 + ICON=media-flash 1.17 + else 1.18 + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add 1.19 + fi 1.20 grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop 1.21 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" 1.22 done 1.23 @@ -99,6 +104,9 @@ 1.24 case $STATUS in 1.25 blocked|upgradeable) 1.26 blocked_list $STATUS;; 1.27 + linkable) 1.28 + [ -d fslink ] && installed_list \ 1.29 + $(readlink fslink)/var/lib/tazpkg/;; 1.30 installed) 1.31 installed_list ;; 1.32 installable)
2.1 --- a/lib/tazpkgbox/package_infos Fri Feb 26 12:48:18 2010 +0000 2.2 +++ b/lib/tazpkgbox/package_infos Wed Mar 03 15:19:29 2010 +0100 2.3 @@ -6,6 +6,10 @@ 2.4 XTERM_OPTS="-geometry 80x16+120+120" 2.5 2.6 PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` 2.7 +ROOT=/var/lib/tazpkg 2.8 +if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 2.9 + ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT 2.10 +fi 2.11 TMP_DIR=/tmp/tazpkg-$$-$RANDOM 2.12 2.13 if [ "$1" = "sizes" ]; then 2.14 @@ -19,7 +23,7 @@ 2.15 exit 0 2.16 fi 2.17 if [ "$1" = "info" ]; then 2.18 - RECEIPT=/var/lib/tazpkg/installed/$3/receipt 2.19 + RECEIPT=$ROOT/installed/$3/receipt 2.20 . $RECEIPT 2.21 case "$2" in 2.22 Web*) firefox $WEB_SITE &;; 2.23 @@ -28,7 +32,7 @@ 2.24 Hand*) firefox $HANDBOOK_URL &;; 2.25 Sug*) $0 list_packages $SUGGESTED;; 2.26 Dep*) $0 list_packages $DEPENDS;; 2.27 - Mod*) $0 list_packages $(xargs echo < /var/lib/tazpkg/installed/$3/modifiers);; 2.28 + Mod*) $0 list_packages $(xargs echo < $ROOT/installed/$3/modifiers);; 2.29 Con*) tazpkgbox list_config $3;; 2.30 Ver*) xterm -T "$3 receipt (q to quit)" -e "cat $RECEIPT | less";; 2.31 esac 2.32 @@ -36,18 +40,21 @@ 2.33 fi 2.34 2.35 if [ "$1" = "list_files" ]; then 2.36 - AWK_FILTER='BEGIN { ls=0 } { if (/^===/) ls=1-ls; else if (ls) print; }' 2.37 CONF_FILES="$(tazpkg list-config $2 | awk "$AWK_FILTER")" 2.38 if [ -n "$CONF_FILES" ]; then 2.39 mkdir $TMP_DIR 2.40 - zcat /var/lib/tazpkg/installed/$2/volatile.cpio.gz | \ 2.41 + zcat $ROOT/installed/$2/volatile.cpio.gz | \ 2.42 ( cd $TMP_DIR ; cpio -id > /dev/null ) 2.43 fi 2.44 - tazpkg list-files $2 | awk "$AWK_FILTER" | while read file; do 2.45 - echo -n "$(stat -c "%A|%U|%G|%s|%n|" "$file" || \ 2.46 + cat $ROOT/installed/$2/files.list | grep ^/ | while read file; do 2.47 + realfile="$file" 2.48 + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 2.49 + realfile="$(readlink /var/lib/tazpkg/fslink)$file" 2.50 + fi 2.51 + echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \ 2.52 echo "File lost !||||$file|")" 2.53 - if [ -L "$file" ]; then 2.54 - echo -n "$(readlink "$file")" 2.55 + if [ -L "$realfile" ]; then 2.56 + echo -n "$(readlink "$realfile")" 2.57 elif [ -f "$file" ]; then 2.58 case "$CONF_FILES" in 2.59 *$file*) 2.60 @@ -89,8 +96,8 @@ 2.61 <variable>PKG</variable> 2.62 ' 2.63 for i in "$@"; do 2.64 - if [ -d /var/lib/tazpkg/installed/$i ]; then 2.65 - . /var/lib/tazpkg/installed/$i/receipt 2.66 + if [ -d $ROOT/installed/$i ]; then 2.67 + . $ROOT/installed/$i/receipt 2.68 LIST_PKGS="$LIST_PKGS 2.69 <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item> 2.70 " 2.71 @@ -171,13 +178,13 @@ 2.72 " 2.73 2.74 # Installed or not installed, that is the question! 2.75 -if [ -d /var/lib/tazpkg/installed/$PKG ]; then 2.76 +if [ -d $ROOT/installed/$PKG ]; then 2.77 PACKED_SIZE="" 2.78 DEPENDS="" 2.79 MAINTAINER="" 2.80 BUGS="" 2.81 TAGS="" 2.82 - . /var/lib/tazpkg/installed/$PKG/receipt 2.83 + . $ROOT/installed/$PKG/receipt 2.84 MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') 2.85 upgrade_version="$(cat /var/lib/tazpkg/packages.desc \ 2.86 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \ 2.87 @@ -188,7 +195,7 @@ 2.88 UPGRADE="$upgrade_version" 2.89 else 2.90 cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \ 2.91 - /var/lib/tazpkg/installed.md5)" 2.92 + $ROOT/installed.md5)" 2.93 new_md5="$(cat /var/lib/tazpkg/packages.md5 \ 2.94 /var/lib/tazpkg/undigest/*/packages.md5 \ 2.95 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")" 2.96 @@ -226,24 +233,25 @@ 2.97 <item icon=\"tazpkg\">Tags: | $TAGS</item>" 2.98 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS 2.99 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>" 2.100 -[ -f /var/lib/tazpkg/installed/$PKG/modifiers ] && 2.101 +[ -f $ROOT/installed/$PKG/modifiers ] && 2.102 PACKAGE_INFOS="$PACKAGE_INFOS 2.103 - <item icon=\"tazpkg\">Modified by: | $(xargs echo < /var/lib/tazpkg/installed/$PKG/modifiers)</item>" 2.104 + <item icon=\"tazpkg\">Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)</item>" 2.105 PACKAGE_INFOS="$PACKAGE_INFOS 2.106 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item> 2.107 <action> $0 info \"\$FIELD\" $PKG </action> 2.108 </tree> 2.109 2.110 <hbox>" 2.111 -[ -s /var/lib/tazpkg/installed/$PACKAGE/description.txt ] && 2.112 +[ -s $ROOT/installed/$PACKAGE/description.txt ] && 2.113 PACKAGE_INFOS="$PACKAGE_INFOS 2.114 <button> 2.115 <label>Description</label> 2.116 <input file icon=\"help\"></input> 2.117 <action>xterm -T \"$PKG description (q to quit)\" $XTERM_OPTS \ 2.118 - -e \"less /var/lib/tazpkg/installed/$PKG/description.txt\"</action> 2.119 + -e \"less $ROOT/installed/$PKG/description.txt\"</action> 2.120 </button>" 2.121 -[ ${PKG%%-*} = get -a ! -d /var/lib/tazpkg/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS 2.122 +if [ ! -d /var/lib/tazpkg/fslink ]; then 2.123 + [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS 2.124 <button> 2.125 <label>Install</label> 2.126 <input file icon=\"go-next\"></input> 2.127 @@ -251,7 +259,7 @@ 2.128 $PKG; sleep 5\"</action> 2.129 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.130 </button>" 2.131 -[ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS 2.132 + [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS 2.133 <button> 2.134 <label>Upgrade</label> 2.135 <input file icon=\"go-next\"></input> 2.136 @@ -259,7 +267,7 @@ 2.137 tazpkg get-install $PKG --forced ; sleep 5\"</action> 2.138 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.139 </button>" 2.140 -grep -q post_install /var/lib/tazpkg/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS 2.141 + grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS 2.142 <button> 2.143 <label>Reconfigure</label> 2.144 <input file icon=\"reload\"></input> 2.145 @@ -267,8 +275,8 @@ 2.146 tazpkg reconfigure $PACKAGE; sleep 2\"</action> 2.147 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.148 </button>" 2.149 -if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then 2.150 - PACKAGE_INFOS="$PACKAGE_INFOS 2.151 + if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then 2.152 + PACKAGE_INFOS="$PACKAGE_INFOS 2.153 <button> 2.154 <label>Unblock</label> 2.155 <input file icon=\"up\"></input> 2.156 @@ -276,8 +284,8 @@ 2.157 tazpkg unblock $PACKAGE; sleep 2\"</action> 2.158 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.159 </button>" 2.160 -else 2.161 - PACKAGE_INFOS="$PACKAGE_INFOS 2.162 + else 2.163 + PACKAGE_INFOS="$PACKAGE_INFOS 2.164 <button> 2.165 <label>Block</label> 2.166 <input file icon=\"down\"></input> 2.167 @@ -285,10 +293,20 @@ 2.168 tazpkg block $PACKAGE; sleep 2\"</action> 2.169 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.170 </button>" 2.171 + fi 2.172 fi 2.173 -if [ ! -s /var/lib/tazpkg/installed/$PKG/modifiers ]; then 2.174 +if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 2.175 PACKAGE_INFOS="$PACKAGE_INFOS 2.176 <button> 2.177 + <label>Link</label> 2.178 + <input file icon=\"edit-redo\"></input> 2.179 + <action>xterm -T \"Link $PACKAGE\" $XTERM_OPTS -e \"\ 2.180 + tazpkg link $PACKAGE $(readlink /var/lib/tazpkg/fslink); sleep 2\"</action> 2.181 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.182 + </button>" 2.183 +elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then 2.184 + [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS 2.185 + <button> 2.186 <label>Repack</label> 2.187 <input file icon=\"edit-redo\"></input> 2.188 <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\ 2.189 @@ -297,6 +315,15 @@ 2.190 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.191 </button> 2.192 " 2.193 + PACKAGE_INFOS="$PACKAGE_INFOS 2.194 + <button> 2.195 + <label>Remove</label> 2.196 + <input file icon=\"edit-delete\"></input> 2.197 + <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\ 2.198 + tazpkg remove $PACKAGE; sleep 2\"</action> 2.199 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.200 + </button> 2.201 +" 2.202 else 2.203 PACKAGE_INFOS="$PACKAGE_INFOS 2.204 <button> 2.205 @@ -306,9 +333,6 @@ 2.206 tazpkg get-install $PACKAGE --forced; sleep 2\"</action> 2.207 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.208 </button> 2.209 -" 2.210 -fi 2.211 -PACKAGE_INFOS="$PACKAGE_INFOS 2.212 <button> 2.213 <label>Remove</label> 2.214 <input file icon=\"edit-delete\"></input> 2.215 @@ -316,6 +340,9 @@ 2.216 tazpkg remove $PACKAGE; sleep 2\"</action> 2.217 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 2.218 </button> 2.219 +" 2.220 +fi 2.221 +PACKAGE_INFOS="$PACKAGE_INFOS 2.222 <button> 2.223 <label>Files</label> 2.224 <input file icon=\"tazpkg\"></input>
3.1 --- a/tazpkgbox Fri Feb 26 12:48:18 2010 +0000 3.2 +++ b/tazpkgbox Wed Mar 03 15:19:29 2010 +0100 3.3 @@ -296,6 +296,7 @@ 3.4 <item>installable</item> 3.5 <item>blocked</item> 3.6 <item>upgradeable</item> 3.7 + <item>linkable</item> 3.8 </combobox> 3.9 <text> 3.10 <label>"Category:"</label> 3.11 @@ -465,6 +466,26 @@ 3.12 </button> 3.13 </hbox> 3.14 </frame> 3.15 + <frame Filesystem link (to install packages as soft link from another mounted Slitaz)> 3.16 + <hbox> 3.17 + <entry> 3.18 + <input>readlink /var/lib/tazpkg/fslink</input> 3.19 + <variable>FSLINK</variable> 3.20 + </entry> 3.21 + <button> 3.22 + <label>Setup</label> 3.23 + <input file icon="go-next"></input> 3.24 + <action>rm -f /var/lib/tazpkg/fslink ; [ "$FSLINK" != "/" -a -d $FSLINK/var/lib/tazpkg ] && ln -s $FSLINK /var/lib/tazpkg/fslink</action> 3.25 + <action>clear:FSLINK</action> 3.26 + <action>refresh:FSLINK</action> 3.27 + </button> 3.28 + <button> 3.29 + <label>Mountbox</label> 3.30 + <input file icon="media-flash"></input> 3.31 + <action>mountbox</action> 3.32 + </button> 3.33 + </hbox> 3.34 + </frame> 3.35 <frame Mirror URL> 3.36 <hbox> 3.37 <entry> 3.38 @@ -510,7 +531,7 @@ 3.39 <action>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</action> 3.40 </button> 3.41 <button> 3.42 - <label>Config Files</label> 3.43 + <label>Show Files</label> 3.44 <input file icon="tazpkg"></input> 3.45 <action type="launch">LIST_CONFIG_FILES</action> 3.46 </button> 3.47 @@ -520,12 +541,12 @@ 3.48 <hbox> 3.49 <button> 3.50 <label>Quick check</label> 3.51 - <input file icon="go-next"></input> 3.52 + <input file icon="system-search"></input> 3.53 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Check packages (q to quit)" -geometry 80x25+120+120 -e "tazpkg check | less " 2> /dev/null</action> 3.54 </button> 3.55 <button> 3.56 <label>Full check</label> 3.57 - <input file icon="go-next"></input> 3.58 + <input file icon="system-search"></input> 3.59 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Check packages (q to quit)" -geometry 80x25+120+120 -e "tazpkg check --full | less " 2> /dev/null</action> 3.60 </button> 3.61 </hbox>