tazpkg annotate lib/libtazpkgbox @ rev 350

Move all splited functions to libtazpkgbox (easier for translation)
author Christophe Lincoln <pankso@slitaz.org>
date Sun Jun 20 23:46:40 2010 +0200 (2010-06-20)
parents
children 4f41dee74425
rev   line source
pankso@350 1 #!/bin/sh
pankso@350 2 #
pankso@350 3 # The libtazpkgbox - Libraries used by tazpkg GUI box.
pankso@350 4 # There is functions to list installed packages in a suitable format for
pankso@350 5 # GTK tree and list mirrored packages using the packages.desc file.
pankso@350 6 #
pankso@350 7
pankso@350 8 export LIB=/usr/lib/slitaz/libtazpkgbox
pankso@350 9
pankso@350 10 usage()
pankso@350 11 {
pankso@350 12 echo -e "\nTazpkgbox library\n
pankso@350 13 Usage : $0 [function] [pkg|args] [pkg]
pankso@350 14 Functions:
pankso@350 15 list-all List all packages
pankso@350 16 list-undigest List undigest packages
pankso@350 17 list-blocked List blocked packages
pankso@350 18 list-upgradeable List all upgradable packages
pankso@350 19 search-packages Search for packages
pankso@350 20 search-files Search for files
pankso@350 21 search-tags Search for TAGS
pankso@350 22 package-infos Display box with pkg information"
pankso@350 23 }
pankso@350 24
pankso@350 25 # List functions.
pankso@350 26 undigest_list()
pankso@350 27 {
pankso@350 28 IFS="|"
pankso@350 29 if [ -n "$1" -a "$1" != "all" ]; then
pankso@350 30 cat undigest/$1/packages.desc
pankso@350 31 else
pankso@350 32 cat undigest/*/packages.desc
pankso@350 33 fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do
pankso@350 34 ICON=tazpkg
pankso@350 35 PACKAGE=${PACKAGE%% *}
pankso@350 36 if [ -d installed/$PACKAGE ]; then
pankso@350 37 [ "$2" == "installable" ] && continue
pankso@350 38 ICON=tazpkg-installed
pankso@350 39 if grep -qs "^$PACKAGE$" blocked-packages.list; then
pankso@350 40 ICON=stop
pankso@350 41 fi
pankso@350 42 else
pankso@350 43 [ "$2" == "installed" ] && continue
pankso@350 44 fi
pankso@350 45 [ "$2" == "blocked" -a "$ICON" != "stop" ] && continue
pankso@350 46 [ "$2" == "upgradeable" ] &&
pankso@350 47 ! grep -q ^$PACKAGE$ upgradeable-packages.list && continue
pankso@350 48 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pankso@350 49 done
pankso@350 50 unset IFS
pankso@350 51 }
pankso@350 52
pankso@350 53 installable_list()
pankso@350 54 {
pankso@350 55 local cache
pankso@350 56 cache=packages.installable_list.$CAT
pankso@350 57 if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then
pankso@350 58 cat $cache
pankso@350 59 return
pankso@350 60 fi
pankso@350 61 IFS="|"
pankso@350 62 cat packages.desc undigest/*/packages.desc 2> /dev/null | sort | \
pankso@350 63 while read PACKAGE VERSION SHORT_DESC CATEGORY; do
pankso@350 64 # Check first for category for more speed.
pankso@350 65 CATEGORY=${CATEGORY%| *}
pankso@350 66 ICON=tazpkg
pankso@350 67 [ $CAT == all -o $CATEGORY == " $CAT " ] || continue
pankso@350 68 [ -d installed/${PACKAGE%% *} ] && continue
pankso@350 69 grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add
pankso@350 70 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pankso@350 71 done | tee $cache
pankso@350 72 unset IFS
pankso@350 73 }
pankso@350 74
pankso@350 75 installed_list()
pankso@350 76 {
pankso@350 77 for pkg in ${1}installed/*
pankso@350 78 do
pankso@350 79 [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue
pankso@350 80 . $pkg/receipt
pankso@350 81 ICON=tazpkg-installed
pankso@350 82 [ $CAT == all -o $CATEGORY == $CAT ] || continue
pankso@350 83 if [ -n "$1" -o -L $pkg ]; then
pankso@350 84 ICON=media-flash
pankso@350 85 else
pankso@350 86 grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add
pankso@350 87 fi
pankso@350 88 grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop
pankso@350 89 echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC"
pankso@350 90 done
pankso@350 91 }
pankso@350 92
pankso@350 93 all_list()
pankso@350 94 {
pankso@350 95 local cache
pankso@350 96 cache=packages.all_list.$CAT
pankso@350 97 if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then
pankso@350 98 cat $cache
pankso@350 99 return
pankso@350 100 fi
pankso@350 101 ( installable_list ; installed_list ) | sort -t \| -k 2 -u | tee $cache
pankso@350 102 }
pankso@350 103
pankso@350 104 blocked_list()
pankso@350 105 {
pankso@350 106 ICON=tazpkg-installed
pankso@350 107 [ "$1" = "blocked" ] && ICON=stop
pankso@350 108 for pkg in $(cat $1-packages.list 2> /dev/null); do
pankso@350 109 [ -f installed/$pkg/receipt ] || continue
pankso@350 110 . installed/$pkg/receipt
pankso@350 111 [ $CAT == all -o $CATEGORY == $CAT ] || continue
pankso@350 112 AVAILABLE=$(grep -s "^$pkg " packages.desc \
pankso@350 113 undigest/*/packages.desc | awk '{ print $3 }')
pankso@350 114 echo "$ICON|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC"
pankso@350 115 done
pankso@350 116 }
pankso@350 117
pankso@350 118 # Search functions
pankso@350 119
pankso@350 120 clean_search()
pankso@350 121 {
pankso@350 122 # Clean preview results.
pankso@350 123 rm -f /tmp/tazpkgbox/search
pankso@350 124 touch /tmp/tazpkgbox/search
pankso@350 125 }
pankso@350 126
pankso@350 127 list_files()
pankso@350 128 {
pankso@350 129 sed 's/.\[[01]m//g' | awk 'BEGIN { show=0 } {
pankso@350 130 if (/^===/) show=1-show;
pankso@350 131 else if (/^Package/) pkg=$2;
pankso@350 132 else if ($0 != "" && show != 0) printf("%s %s\n",pkg,$0);
pankso@350 133 }' | while read pkg file; do
pankso@350 134 [ "$pkg" = "0" ] && continue
pankso@350 135 version=$(grep -hs "^$pkg " /var/lib/tazpkg/packages.desc \
pankso@350 136 /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }')
pankso@350 137 if [ -d /var/lib/tazpkg/installed/$pkg ]; then
pankso@350 138 if [ -x $file ]; then
pankso@350 139 echo "exec|$pkg|$version|$file"
pankso@350 140 elif [ -f $file ]; then
pankso@350 141 echo "txt|$pkg|$version|$file"
pankso@350 142 elif [ -d $file ] ; then
pankso@350 143 echo "folder|$pkg|$version|$file"
pankso@350 144 else
pankso@350 145 # Missing installed file.
pankso@350 146 echo "dialog-warning|$pkg|$version|$file"
pankso@350 147 fi
pankso@350 148 else
pankso@350 149 echo "tazpkg|$pkg|$version|$file"
pankso@350 150 fi
pankso@350 151 done
pankso@350 152 }
pankso@350 153
pankso@350 154 list_package()
pankso@350 155 {
pankso@350 156 if [ -d /var/lib/tazpkg/installed/$1 ]; then
pankso@350 157 . /var/lib/tazpkg/installed/$1/receipt
pankso@350 158 echo "tazpkg-installed|$PACKAGE|$VERSION|$SHORT_DESC"
pankso@350 159 else
pankso@350 160 echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC"
pankso@350 161 fi
pankso@350 162 }
pankso@350 163
pankso@350 164 search_package()
pankso@350 165 {
pankso@350 166 IFS="|"
pankso@350 167 cat /var/lib/tazpkg/packages.desc \
pankso@350 168 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \
pankso@350 169 while read PACKAGE VERSION SHORT_DESC; do
pankso@350 170 if echo "$PACKAGE $SHORT_DESC" | grep -iq "$SEARCH"; then
pankso@350 171 list_package ${PACKAGE%% *}
pankso@350 172 fi
pankso@350 173 done
pankso@350 174 unset IFS
pankso@350 175 }
pankso@350 176
pankso@350 177 case "$1" in
pankso@350 178 list-all)
pankso@350 179 cd /var/lib/tazpkg
pankso@350 180 CAT=`cat /tmp/tazpkgbox/category`
pankso@350 181 STATUS=`cat /tmp/tazpkgbox/status`
pankso@350 182 case $STATUS in
pankso@350 183 blocked|upgradeable)
pankso@350 184 blocked_list $STATUS;;
pankso@350 185 linkable)
pankso@350 186 [ -d fslink ] && installed_list \
pankso@350 187 $(readlink fslink)/var/lib/tazpkg/;;
pankso@350 188 installed)
pankso@350 189 installed_list ;;
pankso@350 190 installable)
pankso@350 191 installable_list ;;
pankso@350 192 *)
pankso@350 193 all_list ;;
pankso@350 194 esac ;;
pankso@350 195 list-undigest)
pankso@350 196 cd /var/lib/tazpkg
pankso@350 197 CAT=`cat /tmp/tazpkgbox/category`
pankso@350 198 set -- `cat /tmp/tazpkgbox/undigest-category`
pankso@350 199 if [ "$1" == "all" -o "$1" == "" ]; then
pankso@350 200 undigest_list $2 $3
pankso@350 201 else
pankso@350 202 undigest_list $2 $3 | grep "$1"
pankso@350 203 fi ;;
pankso@350 204 list-blocked|list-upgradeable)
pankso@350 205 cd /var/lib/tazpkg
pankso@350 206 CAT=`cat /tmp/tazpkgbox/category`
pankso@350 207 blocked_list $1 ;;
pankso@350 208 search-files)
pankso@350 209 # Search for files
pankso@350 210 clean_search
pankso@350 211 tazpkg search-file "$SEARCH" --mirror | list_files > \
pankso@350 212 /tmp/tazpkgbox/search ;;
pankso@350 213 search-packages)
pankso@350 214 clean_search
pankso@350 215 ( search_package ;
pankso@350 216 for i in $(grep ^$SEARCH= /var/lib/tazpkg/packages.equiv | \
pankso@350 217 cut -d= -f2); do
pankso@350 218 SEARCH=${i#*:}
pankso@350 219 search_package
pankso@350 220 done ) > /tmp/tazpkgbox/search ;;
pankso@350 221 search-tags)
pankso@350 222 clean_search
pankso@350 223 grep -ls TAGS /home/slitaz/wok/*/receipt | while read file; do
pankso@350 224 TAGS=""
pankso@350 225 . $file
pankso@350 226 case "$TAGS" in
pankso@350 227 *$SEARCH*) list_package $PACKAGE ;;
pankso@350 228 esac
pankso@350 229 done > /tmp/tazpkgbox/search ;;
pankso@350 230 package-infos)
pankso@350 231 # Dialog box to provide package info and actions
pankso@350 232 XTERM_OPTS="-geometry 80x16+120+120"
pankso@350 233 PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g`
pankso@350 234 ROOT=/var/lib/tazpkg
pankso@350 235 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
pankso@350 236 ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT
pankso@350 237 fi
pankso@350 238 TMP_DIR=/tmp/tazpkg-$$-$RANDOM
pankso@350 239 if [ "$2" = "sizes" ]; then
pankso@350 240 cat <<EOT
pankso@350 241 Dependancies for $3:
pankso@350 242 $(tazpkg depends $3)
pankso@350 243
pankso@350 244 Reverse dependancies for $3:
pankso@350 245 $(tazpkg rdepends $3)
pankso@350 246 EOT
pankso@350 247 exit 0
pankso@350 248 fi
pankso@350 249 if [ "$2" = "info" ]; then
pankso@350 250 RECEIPT=$ROOT/installed/$4/receipt
pankso@350 251 . $RECEIPT
pankso@350 252 case "$3" in
pankso@350 253 Web*) browser $WEB_SITE &;;
pankso@350 254 Tip*) browser http://hg.slitaz.org/wok/raw-file/tip/$4/receipt &;;
pankso@350 255 Siz*) xterm -T "$4 depends (q to quit)" -e "$0 sizes $4 | less";;
pankso@350 256 Upg*) xterm -T "$4 upgrade" -e "tazpkg get-install $4 --forced ; sleep 2";;
pankso@350 257 Hand*) browser $HANDBOOK_URL &;;
pankso@350 258 Sug*) $0 package-infos list_packages $SUGGESTED;;
pankso@350 259 Dep*) $0 package-infos list_packages $DEPENDS;;
pankso@350 260 Mod*) $0 package-infos list_packages $(xargs echo < $ROOT/installed/$3/modifiers);;
pankso@350 261 Con*) tazpkgbox list_config $4;;
pankso@350 262 Ver*) xterm -T "$4 receipt (q to quit)" -e "cat $RECEIPT | less";;
pankso@350 263 esac
pankso@350 264 exit 0
pankso@350 265 fi
pankso@350 266
pankso@350 267 if [ "$2" = "list_files" ]; then
pankso@350 268 CONF_FILES="$(tazpkg list-config $3 | awk "$AWK_FILTER")"
pankso@350 269 if [ -n "$CONF_FILES" ]; then
pankso@350 270 mkdir $TMP_DIR
pankso@350 271 zcat $ROOT/installed/$3/volatile.cpio.gz | \
pankso@350 272 ( cd $TMP_DIR ; cpio -id > /dev/null )
pankso@350 273 fi
pankso@350 274 cat $ROOT/installed/$3/files.list | grep ^/ | while read file; do
pankso@350 275 realfile="$file"
pankso@350 276 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
pankso@350 277 realfile="$(readlink /var/lib/tazpkg/fslink)$file"
pankso@350 278 fi
pankso@350 279 echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \
pankso@350 280 echo "File lost !||||$file|")"
pankso@350 281 if [ -L "$realfile" ]; then
pankso@350 282 echo -n "$(readlink "$realfile")"
pankso@350 283 elif [ -f "$file" ]; then
pankso@350 284 case "$CONF_FILES" in
pankso@350 285 *$file*)
pankso@350 286 if cmp $file $TMP_DIR$file > /dev/null 2>&1; then
pankso@350 287 echo -n "[configuration]"
pankso@350 288 else
pankso@350 289 echo -n "$(stat -c "[configuration: %.16y]" $file)"
pankso@350 290 fi;;
pankso@350 291 #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then
pankso@350 292 # echo -n "Invalid md5"
pankso@350 293 # fi;;
pankso@350 294 esac
pankso@350 295 fi
pankso@350 296 echo ""
pankso@350 297 done
pankso@350 298 [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR
pankso@350 299 exit 0
pankso@350 300 fi
pankso@350 301
pankso@350 302 if [ "$2" = "list_files_mirror" ]; then
pankso@350 303 for i in /var/lib/tazpkg/files.list.lzma \
pankso@350 304 /var/lib/tazpkg/undigest/*/files.list.lzma ; do
pankso@350 305 [ -f $i ] || continue
pankso@350 306 unlzma -c $i
pankso@350 307 done | grep -- "^$3:" | awk '{ print substr($0,index($0,":")+2) }'
pankso@350 308 exit 0
pankso@350 309 fi
pankso@350 310
pankso@350 311 if [ "$2" = "list_packages" ]; then
pankso@350 312 PKG="$3"
pankso@350 313 if [ -n "$4" ]; then
pankso@350 314 shift
pankso@350 315 export LIST_PKGS='
pankso@350 316 <window title="Packages" icon-name="tazpkg">
pankso@350 317 <vbox>
pankso@350 318 <tree>
pankso@350 319 <width>600</width><height>160</height>
pankso@350 320 <label>Package|Version|Size|Description</label>
pankso@350 321 <variable>PKG</variable>
pankso@350 322 '
pankso@350 323 for i in "$@"; do
pankso@350 324 if [ -d $ROOT/installed/$i ]; then
pankso@350 325 . $ROOT/installed/$i/receipt
pankso@350 326 LIST_PKGS="$LIST_PKGS
pankso@350 327 <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item>
pankso@350 328 "
pankso@350 329 else
pankso@350 330 RES=`grep -sh "^$i " \
pankso@350 331 /var/lib/tazpkg/packages.desc \
pankso@350 332 /var/lib/tazpkg/undigest/*/packages.desc`
pankso@350 333 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
pankso@350 334 VERSION=`echo "$RES" | cut -d "|" -f 2`
pankso@350 335 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
pankso@350 336 SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \
pankso@350 337 /var/lib/tazpkg/packages.txt \
pankso@350 338 /var/lib/tazpkg/undigest/*/packages.txt | \
pankso@350 339 tail -1 | sed 's/.*(\(.*\) .*/\1/'`
pankso@350 340 LIST_PKGS="$LIST_PKGS
pankso@350 341 <item icon=\"tazpkg\">$i|$VERSION|$SIZE|$SHORT_DESC</item>
pankso@350 342 "
pankso@350 343 fi
pankso@350 344 done
pankso@350 345 LIST_PKGS="$LIST_PKGS
pankso@350 346 <action>echo "\$PKG" > /tmp/tazpkgbox/pkg</action>
pankso@350 347 <action>$0 package-infos</action>
pankso@350 348 <action>refresh:PKG</action>
pankso@350 349 <action>refresh:PKG_STATS</action>
pankso@350 350 <action>refresh:CACHE_STATS</action>
pankso@350 351 </tree>
pankso@350 352 <hbox>
pankso@350 353 <button ok>
pankso@350 354 </button>
pankso@350 355 <button cancel>
pankso@350 356 <action type=\"closewindow\">LIST_PKGS</action>
pankso@350 357 </button>
pankso@350 358 </hbox>
pankso@350 359 </vbox>
pankso@350 360 </window>
pankso@350 361 "
pankso@350 362 eval `gtkdialog --center --program=LIST_PKGS`
pankso@350 363 [ "$EXIT" = "OK" ] || exit 0
pankso@350 364 fi
pankso@350 365 fi
pankso@350 366
pankso@350 367 export LIST_FILES="
pankso@350 368 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
pankso@350 369 <vbox>
pankso@350 370 <tree exported_column=\"4\">
pankso@350 371 <variable>FILE</variable>
pankso@350 372 <width>600</width><height>160</height>
pankso@350 373 <label>Access | User | Group | Size | Name | Target</label>
pankso@350 374 <input> $0 package-infos list_files $PKG </input>
pankso@350 375 <action>tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE</action>
pankso@350 376 </tree>
pankso@350 377 <hbox>
pankso@350 378 <button>
pankso@350 379 <input file icon=\"gtk-close\"></input>
pankso@350 380 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 381 </button>
pankso@350 382 </hbox>
pankso@350 383 </vbox>
pankso@350 384 </window>
pankso@350 385 "
pankso@350 386
pankso@350 387 export LIST_FILES_MIRROR="
pankso@350 388 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
pankso@350 389 <vbox>
pankso@350 390 <tree>
pankso@350 391 <width>300</width><height>160</height>
pankso@350 392 <label>File Name</label>
pankso@350 393 <input> $0 package-infos list_files_mirror $PKG </input>
pankso@350 394 </tree>
pankso@350 395 <hbox>
pankso@350 396 <button>
pankso@350 397 <input file icon=\"gtk-close\"></input>
pankso@350 398 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 399 </button>
pankso@350 400 </hbox>
pankso@350 401 </vbox>
pankso@350 402 </window>
pankso@350 403 "
pankso@350 404
pankso@350 405 # Installed or not installed, that is the question!
pankso@350 406 if [ -d $ROOT/installed/$PKG ]; then
pankso@350 407 PACKED_SIZE=""
pankso@350 408 DEPENDS=""
pankso@350 409 MAINTAINER=""
pankso@350 410 BUGS=""
pankso@350 411 TAGS=""
pankso@350 412 . $ROOT/installed/$PKG/receipt
pankso@350 413 MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g')
pankso@350 414 upgrade_version="$(cat /var/lib/tazpkg/packages.desc \
pankso@350 415 /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \
pankso@350 416 awk "/^$PACKAGE / { print \$3 }" | head -1 )"
pankso@350 417 UPGRADE=""
pankso@350 418 if [ -n "$upgrade_version" ]; then
pankso@350 419 if [ "$upgrade_version" != "$VERSION" ]; then
pankso@350 420 UPGRADE="$upgrade_version"
pankso@350 421 else
pankso@350 422 cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \
pankso@350 423 $ROOT/installed.md5)"
pankso@350 424 new_md5="$(cat /var/lib/tazpkg/packages.md5 \
pankso@350 425 /var/lib/tazpkg/undigest/*/packages.md5 \
pankso@350 426 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")"
pankso@350 427 if [ -n "$cur_md5" -a -n "$new_md5" -a \
pankso@350 428 "$cur_md5" != "$new_md5" ]; then
pankso@350 429 UPGRADE="build"
pankso@350 430 fi
pankso@350 431 fi
pankso@350 432 fi
pankso@350 433 PACKAGE_INFOS="
pankso@350 434 <window title=\"Package: $PKG\" icon-name=\"package-x-generic\">
pankso@350 435 <vbox>
pankso@350 436
pankso@350 437 <tree>
pankso@350 438 <width>460</width><height>200</height>
pankso@350 439 <label>$PKG|$SHORT_DESC</label>
pankso@350 440 <variable>FIELD</variable>
pankso@350 441 <item icon=\"tazpkg\">Version: | $VERSION</item>
pankso@350 442 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
pankso@350 443 [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 444 <item icon=\"tazpkg\">Upgrade: | $(echo $UPGRADE)</item>"
pankso@350 445 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 446 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>"
pankso@350 447 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 448 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>"
pankso@350 449 [ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 450 <item icon=\"tazpkg\">Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)</item>"
pankso@350 451 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 452 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>"
pankso@350 453 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 454 <item icon=\"important\">Bugs: | $BUGS</item>"
pankso@350 455 [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 456 <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>"
pankso@350 457 [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 458 <item icon=\"tazpkg\">Tags: | $TAGS</item>"
pankso@350 459 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 460 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>"
pankso@350 461 [ -f $ROOT/installed/$PKG/modifiers ] &&
pankso@350 462 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 463 <item icon=\"tazpkg\">Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)</item>"
pankso@350 464 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 465 <item icon=\"applications-internet\">Website: | $WEB_SITE</item>
pankso@350 466 <item icon=\"help\">Tip: | double-click any item for more information</item>
pankso@350 467 <action> $0 package-infos info \"\$FIELD\" $PKG </action>
pankso@350 468 </tree>
pankso@350 469
pankso@350 470 <hbox>"
pankso@350 471 [ -s $ROOT/installed/$PACKAGE/description.txt ] &&
pankso@350 472 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 473 <button>
pankso@350 474 <label>Description</label>
pankso@350 475 <input file icon=\"help\"></input>
pankso@350 476 <action>xterm -T \"$PKG description (q to quit)\" $XTERM_OPTS \
pankso@350 477 -e \"less $ROOT/installed/$PKG/description.txt\"</action>
pankso@350 478 </button>"
pankso@350 479 if [ ! -d /var/lib/tazpkg/fslink ]; then
pankso@350 480 [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 481 <button>
pankso@350 482 <label>Install</label>
pankso@350 483 <input file icon=\"go-next\"></input>
pankso@350 484 <action>xterm -T \"Install ${PKG#get-}\" $XTERM_OPTS -e \"\
pankso@350 485 $PKG; sleep 5\"</action>
pankso@350 486 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 487 </button>"
pankso@350 488 [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 489 <button>
pankso@350 490 <label>Upgrade</label>
pankso@350 491 <input file icon=\"go-next\"></input>
pankso@350 492 <action>xterm -T \"Install $PKG\" $XTERM_OPTS -e \"\
pankso@350 493 tazpkg get-install $PKG --forced ; sleep 5\"</action>
pankso@350 494 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 495 </button>"
pankso@350 496 grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 497 <button>
pankso@350 498 <label>Reconfigure</label>
pankso@350 499 <input file icon=\"reload\"></input>
pankso@350 500 <action>xterm -T \"Reconfigure $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 501 tazpkg reconfigure $PACKAGE; sleep 2\"</action>
pankso@350 502 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 503 </button>"
pankso@350 504 if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then
pankso@350 505 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 506 <button>
pankso@350 507 <label>Unblock</label>
pankso@350 508 <input file icon=\"up\"></input>
pankso@350 509 <action>xterm -T \"Unblock $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 510 tazpkg unblock $PACKAGE; sleep 2\"</action>
pankso@350 511 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 512 </button>"
pankso@350 513 else
pankso@350 514 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 515 <button>
pankso@350 516 <label>Block</label>
pankso@350 517 <input file icon=\"down\"></input>
pankso@350 518 <action>xterm -T \"Block $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 519 tazpkg block $PACKAGE; sleep 2\"</action>
pankso@350 520 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 521 </button>"
pankso@350 522 fi
pankso@350 523 fi
pankso@350 524 if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then
pankso@350 525 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 526 <button>
pankso@350 527 <label>Link</label>
pankso@350 528 <input file icon=\"edit-redo\"></input>
pankso@350 529 <action>xterm -T \"Link $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 530 tazpkg link $PACKAGE $(readlink /var/lib/tazpkg/fslink); sleep 2\"</action>
pankso@350 531 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 532 </button>"
pankso@350 533 elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then
pankso@350 534 [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 535 <button>
pankso@350 536 <label>Repack</label>
pankso@350 537 <input file icon=\"edit-redo\"></input>
pankso@350 538 <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 539 cd /var/cache/tazpkg; \
pankso@350 540 tazpkg repack $PACKAGE; sleep 2\"</action>
pankso@350 541 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 542 </button>
pankso@350 543 "
pankso@350 544 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 545 <button>
pankso@350 546 <label>Remove</label>
pankso@350 547 <input file icon=\"edit-delete\"></input>
pankso@350 548 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 549 tazpkg remove $PACKAGE; sleep 2\"</action>
pankso@350 550 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 551 </button>
pankso@350 552 "
pankso@350 553 else
pankso@350 554 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 555 <button>
pankso@350 556 <label>Re-install</label>
pankso@350 557 <input file icon=\"edit-redo\"></input>
pankso@350 558 <action>xterm -T \"Re-install $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 559 tazpkg get-install $PACKAGE --forced; sleep 2\"</action>
pankso@350 560 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 561 </button>
pankso@350 562 <button>
pankso@350 563 <label>Remove</label>
pankso@350 564 <input file icon=\"edit-delete\"></input>
pankso@350 565 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 566 tazpkg remove $PACKAGE; sleep 2\"</action>
pankso@350 567 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 568 </button>
pankso@350 569 "
pankso@350 570 fi
pankso@350 571 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 572 <button>
pankso@350 573 <label>View Files</label>
pankso@350 574 <input file icon=\"tazpkg\"></input>
pankso@350 575 <action type=\"launch\">LIST_FILES</action>
pankso@350 576 </button>
pankso@350 577 <button>
pankso@350 578 <input file icon=\"gtk-close\"></input>
pankso@350 579 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@350 580 </button>
pankso@350 581 </hbox>
pankso@350 582
pankso@350 583 </vbox>
pankso@350 584 </window>
pankso@350 585 "
pankso@350 586 export PACKAGE_INFOS
pankso@350 587 else
pankso@350 588 RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \
pankso@350 589 /var/lib/tazpkg/undigest/*/packages.desc`
pankso@350 590 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
pankso@350 591 VERSION=`echo "$RES" | cut -d "|" -f 2`
pankso@350 592 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
pankso@350 593 CATEGORY=`echo "$RES" | cut -d "|" -f 4`
pankso@350 594 WEB_SITE=`echo "$RES" | cut -d "|" -f 5`
pankso@350 595 SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \
pankso@350 596 /var/lib/tazpkg/undigest/*/packages.txt | tail -1`
pankso@350 597 DEPENDS=""
pankso@350 598 SUGGESTED=""
pankso@350 599 MAINTAINER=""
pankso@350 600 BUGS=""
pankso@350 601 HANDBOOK_URL=""
pankso@350 602 TAGS=""
pankso@350 603 CONFIG_FILES=""
pankso@350 604 height=160
pankso@350 605 if [ -s /home/slitaz/wok/$PKG/receipt ]; then
pankso@350 606 . /home/slitaz/wok/$PKG/receipt
pankso@350 607 height=200
pankso@350 608 fi
pankso@350 609 PACKAGE_INFOS="
pankso@350 610 <window title=\"Package: $PACKAGE\" icon-name=\"package-x-generic\">
pankso@350 611 <vbox>
pankso@350 612
pankso@350 613 <tree>
pankso@350 614 <width>460</width><height>$height</height>
pankso@350 615 <label>$PKG|$SHORT_DESC</label>
pankso@350 616 <variable>FIELD2</variable>
pankso@350 617 <item icon=\"tazpkg\">Version: | $VERSION</item>
pankso@350 618 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
pankso@350 619 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 620 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>"
pankso@350 621 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 622 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>"
pankso@350 623 [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 624 <item icon=\"tazpkg\">Size: | $SIZES</item>"
pankso@350 625 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 626 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>"
pankso@350 627 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 628 <item icon=\"important\">Bugs: | $BUGS</item>"
pankso@350 629 [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 630 <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>"
pankso@350 631 [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 632 <item icon=\"tazpkg\">Tags: | $TAGS</item>"
pankso@350 633 [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 634 <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>"
pankso@350 635 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 636 <item icon=\"applications-internet\">Website: | $WEB_SITE</item>
pankso@350 637 <item icon=\"text-editor\">Receipt: | double-click to view receipt</item>
pankso@350 638 <action>case \$FIELD2 in Web*) browser $WEB_SITE &;; esac</action>
pankso@350 639 <action>case \$FIELD2 in Rec*) browser http://hg.slitaz.org/wok/raw-file/tip/$PACKAGE/receipt &;; esac</action>
pankso@350 640
pankso@350 641 </tree>
pankso@350 642
pankso@350 643 <hbox>"
pankso@350 644 [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 645 <checkbox>
pankso@350 646 <label>Auto exec</label>
pankso@350 647 <variable>AUTO_EXEC</variable>
pankso@350 648 <default>true</default>
pankso@350 649 </checkbox>"
pankso@350 650 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@350 651 <checkbox>
pankso@350 652 <label>Auto install depends</label>
pankso@350 653 <variable>AUTO_DEPENDS</variable>
pankso@350 654 <default>true</default>
pankso@350 655 </checkbox>
pankso@350 656 <button>
pankso@350 657 <label>Install Package</label>
pankso@350 658 <input file icon=\"go-next\"></input>
pankso@350 659 <action>xterm -T \"Install $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 660 if [ x\$AUTO_DEPENDS != xtrue ]; then script -c \\\"tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log;\
pankso@350 661 else script -c \\\"yes y | tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log; fi; \
pankso@350 662 [ x\${AUTO_EXEC} = xtrue ] && $PACKAGE; \
pankso@350 663 sleep 2\"</action>
pankso@350 664 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@350 665 </button>
pankso@350 666 <button>
pankso@350 667 <label>Download</label>
pankso@350 668 <input file icon=\"go-next\"></input>
pankso@350 669 <action>xterm -T \"Get $PACKAGE\" $XTERM_OPTS -e \"\
pankso@350 670 cd /var/cache/tazpkg; tazpkg get $PACKAGE; sleep 2\"</action>
pankso@350 671 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@350 672 </button>
pankso@350 673 <button>
pankso@350 674 <label>View Files</label>
pankso@350 675 <input file icon=\"tazpkg\"></input>
pankso@350 676 <action type=\"launch\">LIST_FILES_MIRROR</action>
pankso@350 677 </button>
pankso@350 678 <button>
pankso@350 679 <input file icon=\"gtk-close\"></input>
pankso@350 680 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@350 681 </button>
pankso@350 682 </hbox>
pankso@350 683
pankso@350 684 </vbox>
pankso@350 685 </window>
pankso@350 686 "
pankso@350 687 export PACKAGE_INFOS
pankso@350 688 fi
pankso@350 689 gtkdialog --center --program=PACKAGE_INFOS ;;
pankso@350 690
pankso@350 691 *)
pankso@350 692 usage ;;
pankso@350 693 esac
pankso@350 694
pankso@350 695 exit 0