tazpkg annotate lib/tazpkgbox/package_infos @ rev 210
tazpkgbox: display package config files
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Nov 23 20:44:37 2008 +0000 (2008-11-23) |
parents | 7b6eebb50244 |
children | 2f8faaf570c5 |
rev | line source |
---|---|
pankso@81 | 1 #!/bin/sh |
pankso@81 | 2 # |
MikeDSmith25@135 | 3 # Dialog box to provide package info and actions |
pankso@81 | 4 # |
pankso@81 | 5 |
pankso@81 | 6 XTERM_OPTS="-geometry 80x16+120+120" |
pankso@81 | 7 |
pankso@81 | 8 PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` |
pascal@146 | 9 TMP_DIR=/tmp/tazpkg-$$-$RANDOM |
pankso@81 | 10 |
pascal@209 | 11 if [ "$1" = "info" ]; then |
pascal@209 | 12 RECEIPT=/var/lib/tazpkg/installed/$3/receipt |
pascal@209 | 13 . $RECEIPT |
pascal@209 | 14 case "$2" in |
pascal@209 | 15 Web*) firefox $WEB_SITE &;; |
pascal@209 | 16 Hand*) firefox $HANDBOOK_URL &;; |
pascal@209 | 17 Sug*) $0 list_packages $SUGGESTED;; |
pascal@209 | 18 Dep*) $0 list_packages $DEPENDS;; |
pascal@209 | 19 Mod*) $0 list_packages $(xargs echo < /var/lib/tazpkg/installed/$3/modifiers);; |
pascal@210 | 20 Con*) tazpkgbox list_config $3;; |
pascal@209 | 21 Ver*) xterm -T "$3 receipt (q to quit)" -e "cat $RECEIPT | less";; |
pascal@209 | 22 esac |
pascal@209 | 23 exit 0 |
pascal@209 | 24 fi |
pascal@209 | 25 |
pascal@97 | 26 if [ "$1" = "list_files" ]; then |
pascal@143 | 27 AWK_FILTER='BEGIN { ls=0 } { if (/^===/) ls=1-ls; else if (ls) print; }' |
pascal@143 | 28 CONF_FILES="$(tazpkg list-config $2 | awk "$AWK_FILTER")" |
pascal@146 | 29 if [ -n "$CONF_FILES" ]; then |
pascal@146 | 30 mkdir $TMP_DIR |
pascal@146 | 31 zcat /var/lib/tazpkg/installed/$2/volatile.cpio.gz | \ |
pascal@146 | 32 ( cd $TMP_DIR ; cpio -id > /dev/null ) |
pascal@146 | 33 fi |
pascal@143 | 34 tazpkg list-files $2 | awk "$AWK_FILTER" | while read file; do |
pascal@156 | 35 echo -n "$(stat -c "%A|%U|%G|%s|%n|" "$file" || \ |
pascal@171 | 36 echo "File lost !||||$file|")" |
pascal@143 | 37 if [ -L "$file" ]; then |
pascal@143 | 38 echo -n "$(readlink "$file")" |
pascal@143 | 39 elif [ -f "$file" ]; then |
pascal@143 | 40 case "$CONF_FILES" in |
pascal@146 | 41 *$file*) |
pascal@146 | 42 if cmp $file $TMP_DIR$file > /dev/null 2>&1; then |
pascal@146 | 43 echo -n "[configuration]" |
pascal@146 | 44 else |
pascal@146 | 45 echo -n "$(stat -c "[configuration: %.16y]" $file)" |
pascal@146 | 46 fi;; |
pascal@178 | 47 #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then |
pascal@178 | 48 # echo -n "Invalid md5" |
pascal@178 | 49 # fi;; |
pascal@143 | 50 esac |
pascal@143 | 51 fi |
pascal@143 | 52 echo "" |
pascal@143 | 53 done |
pascal@146 | 54 [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR |
pascal@97 | 55 exit 0 |
pascal@97 | 56 fi |
pascal@97 | 57 |
pascal@99 | 58 if [ "$1" = "list_files_mirror" ]; then |
pascal@187 | 59 for i in /var/lib/tazpkg/files.list.lzma \ |
pascal@187 | 60 /var/lib/tazpkg/undigest/*/files.list.lzma ; do |
pascal@187 | 61 [ -f $i ] || continue |
pascal@187 | 62 unlzma -c $i |
pascal@187 | 63 done | grep -- "^$2:" | awk '{ print substr($0,index($0,":")+2) }' |
pascal@99 | 64 exit 0 |
pascal@99 | 65 fi |
pascal@99 | 66 |
pascal@174 | 67 if [ "$1" = "list_packages" ]; then |
pascal@174 | 68 PKG="$2" |
pascal@174 | 69 if [ -n "$3" ]; then |
pascal@174 | 70 shift |
pascal@174 | 71 export LIST_PKGS=' |
pascal@174 | 72 <window title="Packages" icon-name="tazpkg"> |
pascal@174 | 73 <vbox> |
pascal@174 | 74 <tree> |
pascal@174 | 75 <width>600</width><height>160</height> |
pascal@174 | 76 <label>Package|Version|Size|Description</label> |
pascal@174 | 77 <variable>PKG</variable> |
pascal@174 | 78 ' |
pascal@174 | 79 for i in "$@"; do |
pascal@174 | 80 if [ -d /var/lib/tazpkg/installed/$i ]; then |
pascal@174 | 81 . /var/lib/tazpkg/installed/$i/receipt |
pascal@174 | 82 LIST_PKGS="$LIST_PKGS |
pascal@174 | 83 <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item> |
pascal@174 | 84 " |
pascal@174 | 85 else |
pascal@187 | 86 RES=`grep -sh "^$i " \ |
pascal@187 | 87 /var/lib/tazpkg/packages.desc \ |
pascal@187 | 88 /var/lib/tazpkg/undigest/*/packages.desc` |
pascal@174 | 89 PACKAGE=`echo "$RES" | cut -d "|" -f 1` |
pascal@174 | 90 VERSION=`echo "$RES" | cut -d "|" -f 2` |
pascal@174 | 91 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` |
pascal@187 | 92 SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \ |
pascal@187 | 93 /var/lib/tazpkg/packages.txt \ |
pascal@187 | 94 /var/lib/tazpkg/undigest/*/packages.txt | \ |
pascal@187 | 95 tail -1 | sed 's/.*(\(.*\) .*/\1/'` |
pascal@174 | 96 LIST_PKGS="$LIST_PKGS |
pascal@174 | 97 <item icon=\"tazpkg\">$i|$VERSION|$SIZE|$SHORT_DESC</item> |
pascal@174 | 98 " |
pascal@174 | 99 fi |
pascal@174 | 100 done |
pascal@174 | 101 LIST_PKGS="$LIST_PKGS |
pascal@178 | 102 <action>echo "\$PKG" > /tmp/tazpkgbox/pkg</action> |
pascal@178 | 103 <action>/usr/lib/slitaz/tazpkgbox/package_infos</action> |
pascal@178 | 104 <action>refresh:PKG</action> |
pascal@178 | 105 <action>refresh:PKG_STATS</action> |
pascal@178 | 106 <action>refresh:CACHE_STATS</action> |
pascal@174 | 107 </tree> |
pascal@174 | 108 <hbox> |
pascal@174 | 109 <button ok> |
pascal@174 | 110 </button> |
pascal@174 | 111 <button cancel> |
pascal@174 | 112 <action type=\"closewindow\">LIST_PKGS</action> |
pascal@174 | 113 </button> |
pascal@174 | 114 </hbox> |
pascal@174 | 115 </vbox> |
pascal@174 | 116 </window> |
pascal@174 | 117 " |
pascal@174 | 118 eval `gtkdialog --center --program=LIST_PKGS` |
pascal@174 | 119 [ "$EXIT" = "OK" ] || exit 0 |
pascal@174 | 120 fi |
pascal@174 | 121 fi |
pascal@174 | 122 |
pascal@97 | 123 export LIST_FILES=" |
pascal@97 | 124 <window title=\"$PKG files\" icon-name=\"system-file-manager\"> |
pascal@97 | 125 <vbox> |
pascal@143 | 126 <tree exported_column=\"4\"> |
pascal@143 | 127 <variable>FILE</variable> |
pascal@97 | 128 <width>600</width><height>160</height> |
pascal@143 | 129 <label>Access | User | Group | Size | Name | Target</label> |
pascal@97 | 130 <input> $0 list_files $PKG </input> |
pascal@143 | 131 <action>tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE</action> |
pascal@97 | 132 </tree> |
pascal@97 | 133 <hbox> |
pascal@97 | 134 <button> |
pascal@97 | 135 <input file icon=\"gtk-close\"></input> |
pascal@97 | 136 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@97 | 137 </button> |
pascal@97 | 138 </hbox> |
pascal@97 | 139 </vbox> |
pascal@97 | 140 </window> |
pascal@97 | 141 " |
pascal@97 | 142 |
pascal@99 | 143 export LIST_FILES_MIRROR=" |
pascal@99 | 144 <window title=\"$PKG files\" icon-name=\"system-file-manager\"> |
pascal@99 | 145 <vbox> |
pascal@99 | 146 <tree> |
pascal@99 | 147 <width>300</width><height>160</height> |
pascal@99 | 148 <label>File Name</label> |
pascal@99 | 149 <input> $0 list_files_mirror $PKG </input> |
pascal@99 | 150 </tree> |
pascal@99 | 151 <hbox> |
pascal@99 | 152 <button> |
pascal@99 | 153 <input file icon=\"gtk-close\"></input> |
pascal@99 | 154 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@99 | 155 </button> |
pascal@99 | 156 </hbox> |
pascal@99 | 157 </vbox> |
pascal@99 | 158 </window> |
pascal@99 | 159 " |
pascal@99 | 160 |
pankso@81 | 161 # Installed or not installed, that the question. |
pankso@81 | 162 if [ -d /var/lib/tazpkg/installed/$PKG ]; then |
pascal@87 | 163 PACKED_SIZE="" |
pascal@88 | 164 DEPENDS="" |
pascal@133 | 165 MAINTAINER="" |
pascal@173 | 166 BUGS="" |
pankso@81 | 167 . /var/lib/tazpkg/installed/$PKG/receipt |
pascal@133 | 168 MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') |
pascal@87 | 169 PACKAGE_INFOS=" |
pankso@81 | 170 <window title=\"Package: $PKG\" icon-name=\"package-x-generic\"> |
pankso@81 | 171 <vbox> |
pankso@81 | 172 |
pankso@81 | 173 <tree> |
pascal@174 | 174 <width>460</width><height>200</height> |
pascal@150 | 175 <label>$PKG|$SHORT_DESC</label> |
pascal@131 | 176 <variable>FIELD</variable> |
pankso@81 | 177 <item icon=\"tazpkg\">Version: | $VERSION</item> |
pascal@88 | 178 <item icon=\"tazpkg\">Category: | $CATEGORY</item>" |
pascal@88 | 179 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@131 | 180 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>" |
pascal@162 | 181 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@162 | 182 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>" |
pascal@87 | 183 [ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@87 | 184 <item icon=\"tazpkg\">Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)</item>" |
pascal@132 | 185 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@132 | 186 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>" |
pascal@173 | 187 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@173 | 188 <item icon=\"error\">Bugs: | $BUGS</item>" |
pascal@198 | 189 [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@198 | 190 <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>" |
pascal@209 | 191 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@209 | 192 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>" |
pascal@209 | 193 [ -f /var/lib/tazpkg/installed/$PKG/modifiers ] && |
pascal@209 | 194 PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@209 | 195 <item icon=\"tazpkg\">Modified by: | $(xargs echo < /var/lib/tazpkg/installed/$PKG/modifiers)</item>" |
pascal@87 | 196 PACKAGE_INFOS="$PACKAGE_INFOS |
pankso@81 | 197 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item> |
pascal@209 | 198 <action> $0 info \"\$FIELD\" $PKG </action> |
pankso@81 | 199 </tree> |
pankso@81 | 200 |
pascal@92 | 201 <hbox>" |
pascal@201 | 202 [ ${PKG%%-*} = get -a ! -d /var/lib/tazpkg/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@130 | 203 <button> |
pascal@130 | 204 <label>Install</label> |
pascal@130 | 205 <input file icon=\"go-next\"></input> |
pascal@130 | 206 <action>xterm -T \"Install ${PKG#get-}\" $XTERM_OPTS -e \"\ |
pascal@130 | 207 $PKG; sleep 5\"</action> |
pascal@130 | 208 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@130 | 209 </button>" |
pascal@92 | 210 grep -q post_install /var/lib/tazpkg/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@92 | 211 <button> |
pascal@92 | 212 <label>Reconfigure</label> |
pascal@92 | 213 <input file icon=\"reload\"></input> |
pascal@92 | 214 <action>xterm -T \"Reconfigure $PACKAGE\" $XTERM_OPTS -e \"\ |
pascal@92 | 215 tazpkg reconfigure $PACKAGE; sleep 2\"</action> |
pascal@92 | 216 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@92 | 217 </button>" |
pascal@153 | 218 if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then |
pascal@93 | 219 PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@93 | 220 <button> |
pascal@93 | 221 <label>Unblock</label> |
pascal@93 | 222 <input file icon=\"up\"></input> |
pascal@93 | 223 <action>xterm -T \"Unblock $PACKAGE\" $XTERM_OPTS -e \"\ |
pascal@93 | 224 tazpkg unblock $PACKAGE; sleep 2\"</action> |
pascal@93 | 225 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@93 | 226 </button>" |
pascal@93 | 227 else |
pascal@93 | 228 PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@93 | 229 <button> |
pascal@93 | 230 <label>Block</label> |
pascal@93 | 231 <input file icon=\"down\"></input> |
pascal@93 | 232 <action>xterm -T \"Block $PACKAGE\" $XTERM_OPTS -e \"\ |
pascal@93 | 233 tazpkg block $PACKAGE; sleep 2\"</action> |
pascal@93 | 234 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pascal@93 | 235 </button>" |
pascal@93 | 236 fi |
pascal@92 | 237 PACKAGE_INFOS="$PACKAGE_INFOS |
pankso@81 | 238 <button> |
pankso@81 | 239 <label>Remove</label> |
pankso@81 | 240 <input file icon=\"edit-delete\"></input> |
pankso@81 | 241 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\ |
pankso@81 | 242 tazpkg remove $PACKAGE; sleep 2\"</action> |
pankso@81 | 243 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pankso@81 | 244 </button> |
pankso@81 | 245 <button> |
pankso@81 | 246 <label>Repack</label> |
pankso@81 | 247 <input file icon=\"edit-redo\"></input> |
pankso@81 | 248 <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\ |
pankso@81 | 249 cd /var/cache/tazpkg; \ |
pankso@81 | 250 tazpkg repack $PACKAGE; sleep 2\"</action> |
pankso@81 | 251 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pankso@81 | 252 </button> |
pankso@81 | 253 <button> |
pascal@97 | 254 <label>Files</label> |
pascal@97 | 255 <input file icon=\"tazpkg\"></input> |
pascal@97 | 256 <action type=\"launch\">LIST_FILES</action> |
pascal@97 | 257 </button> |
pascal@97 | 258 <button> |
pankso@81 | 259 <input file icon=\"gtk-close\"></input> |
pankso@81 | 260 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> |
pankso@81 | 261 </button> |
pankso@81 | 262 </hbox> |
pankso@81 | 263 |
pankso@81 | 264 </vbox> |
pankso@81 | 265 </window> |
pankso@81 | 266 " |
pascal@87 | 267 export PACKAGE_INFOS |
pankso@81 | 268 else |
pascal@187 | 269 RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \ |
pascal@187 | 270 /var/lib/tazpkg/undigest/*/packages.desc` |
pankso@81 | 271 PACKAGE=`echo "$RES" | cut -d "|" -f 1` |
pankso@81 | 272 VERSION=`echo "$RES" | cut -d "|" -f 2` |
pascal@150 | 273 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` |
pankso@81 | 274 CATEGORY=`echo "$RES" | cut -d "|" -f 4` |
pankso@81 | 275 WEB_SITE=`echo "$RES" | cut -d "|" -f 5` |
pascal@187 | 276 SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \ |
pascal@187 | 277 /var/lib/tazpkg/undigest/*/packages.txt | tail -1` |
pascal@90 | 278 PACKAGE_INFOS=" |
pankso@81 | 279 <window title=\"Package: $PACKAGE\" icon-name=\"package-x-generic\"> |
pankso@81 | 280 <vbox> |
pankso@81 | 281 |
pankso@81 | 282 <tree> |
pascal@174 | 283 <width>460</width><height>160</height> |
pascal@150 | 284 <label>$PKG|$SHORT_DESC</label> |
pascal@181 | 285 <variable>FIELD2</variable> |
pankso@81 | 286 <item icon=\"tazpkg\">Name: | $PACKAGE</item> |
pankso@81 | 287 <item icon=\"tazpkg\">Version: | $VERSION</item> |
pascal@90 | 288 <item icon=\"tazpkg\">Category: | $CATEGORY</item>" |
pascal@90 | 289 [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@90 | 290 <item icon=\"tazpkg\">Size: | $SIZES</item>" |
pascal@90 | 291 PACKAGE_INFOS="$PACKAGE_INFOS |
pankso@81 | 292 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item> |
pascal@181 | 293 <action>case \$FIELD2 in Web*) firefox $WEB_SITE &;; esac</action> |
pankso@81 | 294 </tree> |
pankso@81 | 295 |
pascal@130 | 296 <hbox>" |
pascal@201 | 297 [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@130 | 298 <checkbox> |
pascal@130 | 299 <label>Auto exec</label> |
pascal@130 | 300 <variable>AUTO_EXEC</variable> |
pascal@130 | 301 <default>true</default> |
pascal@130 | 302 </checkbox>" |
pascal@130 | 303 PACKAGE_INFOS="$PACKAGE_INFOS |
pascal@130 | 304 <checkbox> |
pascal@130 | 305 <label>Auto install depends</label> |
pascal@130 | 306 <variable>AUTO_DEPENDS</variable> |
pascal@130 | 307 <default>true</default> |
pascal@130 | 308 </checkbox> |
pankso@81 | 309 <button> |
pankso@81 | 310 <label>Get-install</label> |
pankso@81 | 311 <input file icon=\"go-next\"></input> |
pankso@81 | 312 <action>xterm -T \"Install $PACKAGE\" $XTERM_OPTS -e \"\ |
pascal@208 | 313 if [ x\$AUTO_DEPENDS != xtrue ]; then script -c \\\"tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log;\ |
pascal@208 | 314 else script -c \\\"yes y | tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log; fi; \ |
pascal@200 | 315 [ x\${AUTO_EXEC} = xtrue ] && $PACKAGE; \ |
pascal@130 | 316 sleep 2\"</action> |
pankso@81 | 317 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> |
pankso@81 | 318 </button> |
pankso@81 | 319 <button> |
pankso@81 | 320 <label>Get</label> |
pankso@81 | 321 <input file icon=\"go-next\"></input> |
pankso@81 | 322 <action>xterm -T \"Get $PACKAGE\" $XTERM_OPTS -e \"\ |
pankso@81 | 323 cd /var/cache/tazpkg; tazpkg get $PACKAGE; sleep 2\"</action> |
pankso@81 | 324 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> |
pankso@81 | 325 </button> |
pankso@81 | 326 <button> |
pascal@99 | 327 <label>Files</label> |
pascal@99 | 328 <input file icon=\"tazpkg\"></input> |
pascal@99 | 329 <action type=\"launch\">LIST_FILES_MIRROR</action> |
pascal@99 | 330 </button> |
pascal@99 | 331 <button> |
pankso@81 | 332 <input file icon=\"gtk-close\"></input> |
pankso@81 | 333 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> |
pankso@81 | 334 </button> |
pankso@81 | 335 </hbox> |
pankso@81 | 336 |
pankso@81 | 337 </vbox> |
pankso@81 | 338 </window> |
pankso@81 | 339 " |
pascal@90 | 340 export PACKAGE_INFOS |
pankso@81 | 341 fi |
pankso@81 | 342 |
pankso@81 | 343 gtkdialog --center --program=PACKAGE_INFOS |
pankso@81 | 344 |
pankso@81 | 345 exit 0 |