tazpkg annotate lib/libtazpkgbox @ rev 366

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