tazpkg diff oldstuff/libtazpkgbox @ rev 947
modules/get: get_pkg_cookmode(): file may be absent.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Mon Jun 05 22:36:04 2017 +0300 (2017-06-05) |
parents | f1d05bd96d7f |
children | 03544b89ac81 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/oldstuff/libtazpkgbox Mon Jun 05 22:36:04 2017 +0300 1.3 @@ -0,0 +1,708 @@ 1.4 +#!/bin/sh 1.5 +# The libtazpkgbox - Libraries used by tazpkg GUI box. 1.6 +# 1.7 +# These are functions to list installed packages in a suitable format for a 1.8 +# GTK tree and list mirrored packages using the packages.desc file. The libs 1.9 +# also provide functions to search packages and files, and the GUI box for 1.10 +# package information. 1.11 +# 1.12 +# (C) 2010 SliTaz - GNU General Public License v3. 1.13 +# 1.14 + 1.15 +# Include gettext helper script. 1.16 +. /usr/bin/gettext.sh 1.17 + 1.18 +# Export package name for gettext. 1.19 +TEXTDOMAIN='libtazpkgbox' 1.20 +export TEXTDOMAIN 1.21 + 1.22 +# Dont hardcore path, use $LIB 1.23 +export LIB=/usr/lib/slitaz/libtazpkgbox 1.24 + 1.25 +usage() 1.26 +{ 1.27 + [ "$1" ] && echo "??? $0 $@" 1.28 + echo -e "\nTazpkgbox library\n 1.29 +Usage : $0 [function] [pkg|args] [pkg] 1.30 +Functions: 1.31 + list-all List all packages. 1.32 + list-undigest List undigest packages. 1.33 + list-blocked List blocked packages. 1.34 + list-upgradeable List all upgradable packages. 1.35 + search-packages Search for packages. 1.36 + search-files Search for files. 1.37 + search-tags Search for TAGS. 1.38 + package-infos Display box with pkg information." 1.39 +} 1.40 + 1.41 +# List functions. 1.42 +undigest_list() 1.43 +{ 1.44 + IFS="|" 1.45 + if [ "$1" -a "$1" != "all" ]; then 1.46 + cut -f 1,2,3,4 -d "|" undigest/$1/packages.desc 1.47 + else 1.48 + cut -f 1,2,3,4 -d "|" undigest/*/packages.desc | sort 1.49 + fi 2> /dev/null | while read PACKAGE VERSION SHORT_DESC CATEGORY; do 1.50 + [ $CAT = all -o $CATEGORY = " $CAT " ] || continue 1.51 + ICON=tazpkg 1.52 + PACKAGE=${PACKAGE%% *} 1.53 + if [ -d installed/$PACKAGE ]; then 1.54 + [ "$2" = "installable" ] && continue 1.55 + ICON=tazpkg-installed 1.56 + if grep -qs "^$PACKAGE$" blocked-packages.list; then 1.57 + ICON=stop 1.58 + fi 1.59 + else 1.60 + [ "$2" = "installed" ] && continue 1.61 + fi 1.62 + [ "$2" = "blocked" -a "$ICON" != "stop" ] && continue 1.63 + [ "$2" = "upgradeable" ] && 1.64 + ! grep -q ^$PACKAGE$ upgradeable-packages.list && continue 1.65 + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" 1.66 + done 1.67 + unset IFS 1.68 +} 1.69 + 1.70 +installable_list() 1.71 +{ 1.72 + local cache 1.73 + cache=packages.installable_list.$CAT 1.74 + if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then 1.75 + cat $cache 1.76 + return 1.77 + fi 1.78 + IFS="|" 1.79 + cut -f 1,2,3,4 -d "|" packages.desc undigest/*/packages.desc 2> /dev/null | sort | \ 1.80 + while read PACKAGE VERSION SHORT_DESC CATEGORY; do 1.81 + # Check first for category for more speed. 1.82 + [ $CAT = all -o $CATEGORY = " $CAT " ] || continue 1.83 + [ -d installed/${PACKAGE% } ] && continue 1.84 + ICON=tazpkg 1.85 + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add 1.86 + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" 1.87 + done | tee $cache 1.88 + unset IFS 1.89 +} 1.90 + 1.91 +installed_list() 1.92 +{ 1.93 + for pkg in ${1}installed/* 1.94 + do 1.95 + [ "$1" -a -s installed/$(basename $pkg)/receipt ] && continue 1.96 + . $pkg/receipt 1.97 + ICON=tazpkg-installed 1.98 + [ $CAT = all -o $CATEGORY = $CAT ] || continue 1.99 + if [ "$1" -o -L $pkg ]; then 1.100 + ICON=media-flash 1.101 + else 1.102 + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add 1.103 + fi 1.104 + grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop 1.105 + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" 1.106 + done 1.107 +} 1.108 + 1.109 +all_list() 1.110 +{ 1.111 + local cache 1.112 + cache=packages.all_list.$CAT 1.113 + if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then 1.114 + cat $cache 1.115 + return 1.116 + fi 1.117 + { installable_list ; installed_list; } | sort -t \| -k 2 -u | tee $cache 1.118 +} 1.119 + 1.120 +blocked_list() 1.121 +{ 1.122 + ICON=tazpkg-installed 1.123 + [ "$1" = "blocked" ] && ICON=stop 1.124 + for pkg in $(cat $1-packages.list 2> /dev/null); do 1.125 + [ -f installed/$pkg/receipt ] || continue 1.126 + . installed/$pkg/receipt 1.127 + [ $CAT = all -o $CATEGORY = $CAT ] || continue 1.128 + AVAILABLE=$(grep -s "^$pkg " packages.desc \ 1.129 + undigest/*/packages.desc | awk '{ print $3 }') 1.130 + echo "$ICON|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" 1.131 + done 1.132 +} 1.133 + 1.134 +# Search functions 1.135 + 1.136 +clean_search() 1.137 +{ 1.138 + # Clean preview results. 1.139 + rm -f /tmp/tazpkgbox/search 1.140 + touch /tmp/tazpkgbox/search 1.141 +} 1.142 + 1.143 +list_files() 1.144 +{ 1.145 + sed -e "/^$/d" -e "1,/^=*$/d" -e "/^=*$/,/EOT/d" | while read input; do 1.146 + if [ "$input" = "${input/ :/}" ]; then 1.147 + # Input is a file. 1.148 + if [ "$ICON" = tazpkg ]; then 1.149 + echo "add|$PACKAGE| |$input" 1.150 + else 1.151 + if [ -d $input ] ; then 1.152 + echo "folder|$PACKAGE| |$input" 1.153 + elif [ -x $input ]; then 1.154 + echo "exec|$PACKAGE| |$input" 1.155 + elif [ -f $input ]; then 1.156 + echo "txt|$PACKAGE| |$input" 1.157 + else 1.158 + # Missing installed file. 1.159 + echo "dialog-warning|$PACKAGE| |$input" 1.160 + fi 1.161 + fi 1.162 + else 1.163 + # Input contains package name, don't refer to Package word as 1.164 + # tazpkg can use other languages. 1.165 + PACKAGE=$(echo $input | sed 's/^.* \(.*\) :.*$/\1/') 1.166 + ICON=tazpkg 1.167 + [ -d /var/lib/tazpkg/installed/$PACKAGE ] && ICON=tazpkg-installed 1.168 + echo "$ICON|$PACKAGE |$(grep -hs "^$PACKAGE " /var/lib/tazpkg/packages.desc \ 1.169 + /var/lib/tazpkg/undigest/*/packages.desc | cut -f2,3 -d '|' | head -1)" 1.170 + fi 1.171 + done 1.172 +} 1.173 + 1.174 +list_package() 1.175 +{ 1.176 + if [ -d /var/lib/tazpkg/installed/$1 ]; then 1.177 + . /var/lib/tazpkg/installed/$1/receipt 1.178 + echo "tazpkg-installed|$PACKAGE|$VERSION|$SHORT_DESC" 1.179 + else 1.180 + echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC" 1.181 + fi 1.182 +} 1.183 + 1.184 +search_package() 1.185 +{ 1.186 + IFS="|" 1.187 + cut -f1,2,3 -d '|' /var/lib/tazpkg/packages.desc \ 1.188 + /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ 1.189 + while read PACKAGE VERSION SHORT_DESC; do 1.190 + [ "$PACKAGE" = "${PACKAGE/$SEARCH/}" -a "$SHORT_DESC" = "${SHORT_DESC/$SEARCH/}" ] \ 1.191 + && continue 1.192 + list_package ${PACKAGE% } 1.193 + done 1.194 + unset IFS 1.195 +} 1.196 + 1.197 +case "$1" in 1.198 + list-all) 1.199 + cd /var/lib/tazpkg 1.200 + CAT=`cat /tmp/tazpkgbox/category` 1.201 + STATUS=`cat /tmp/tazpkgbox/status` 1.202 + case $STATUS in 1.203 + blocked|upgradeable) 1.204 + blocked_list $STATUS;; 1.205 + linkable) 1.206 + [ -d fslink ] && installed_list \ 1.207 + $(readlink fslink)/var/lib/tazpkg/;; 1.208 + installed) 1.209 + installed_list ;; 1.210 + installable) 1.211 + installable_list ;; 1.212 + *) 1.213 + all_list ;; 1.214 + esac ;; 1.215 + list-undigest) 1.216 + cd /var/lib/tazpkg 1.217 + set -- `cat /tmp/tazpkgbox/undigest-category` 1.218 + CAT="${1:-all}" 1.219 + undigest_list $2 $3 ;; 1.220 + list-blocked|list-upgradeable) 1.221 + cd /var/lib/tazpkg 1.222 + CAT=`cat /tmp/tazpkgbox/category` 1.223 + blocked_list $1 ;; 1.224 + search-files) 1.225 + # Search for files 1.226 + clean_search 1.227 + tazpkg search-file "$SEARCH" --mirror | list_files > \ 1.228 + /tmp/tazpkgbox/search ;; 1.229 + search-packages) 1.230 + clean_search 1.231 + { search_package ; 1.232 + for i in $(grep ^$SEARCH= /var/lib/tazpkg/packages.equiv | \ 1.233 + cut -d= -f2); do 1.234 + SEARCH=${i#*:} 1.235 + search_package 1.236 + done; } > /tmp/tazpkgbox/search ;; 1.237 + search-tags) 1.238 + clean_search 1.239 + fgrep -ls TAGS /home/slitaz/wok/*/receipt | while read file; do 1.240 + TAGS="" 1.241 + . $file 1.242 + case "$TAGS" in 1.243 + *$SEARCH*) list_package $PACKAGE ;; 1.244 + esac 1.245 + done > /tmp/tazpkgbox/search ;; 1.246 + package-infos) 1.247 + # Dialog box to provide package info and actions 1.248 + XTERM_OPTS="-geometry 80x16+120+120" 1.249 + PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` 1.250 + ROOT=/var/lib/tazpkg 1.251 + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 1.252 + ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT 1.253 + fi 1.254 + TMP_DIR=/tmp/tazpkg-$$-$RANDOM 1.255 + if [ "$2" = "sizes" ]; then 1.256 + cat <<EOT 1.257 +Dependencies for $3: 1.258 +$(tazpkg depends $3) 1.259 + 1.260 +Reverse dependencies for $3: 1.261 +$(tazpkg rdepends $3) 1.262 +EOT 1.263 + exit 0 1.264 + fi 1.265 + if [ "$2" = "info" ]; then 1.266 + RECEIPT=$ROOT/installed/$4/receipt 1.267 + . $RECEIPT 1.268 + case "$3" in 1.269 + Web*) browser $WEB_SITE &;; 1.270 + Tip*) browser http://hg.slitaz.org/wok/raw-file/tip/$4/receipt &;; 1.271 + Siz*) xterm -T "$4 `gettext \"depends (q to quit)\"`" -e "$0 package-infos sizes $4 | less";; 1.272 + Upg*) xterm -T "$4 `gettext \"upgrade\"`" -e "tazpkg get-install $4 --forced ; sleep 2";; 1.273 + Hand*) browser $HANDBOOK_URL &;; 1.274 + Sug*) $0 package-infos list_packages $SUGGESTED;; 1.275 + Dep*) $0 package-infos list_packages $DEPENDS;; 1.276 + Mod*) $0 package-infos list_packages $(xargs echo < $ROOT/installed/$3/modifiers);; 1.277 + Con*) tazpkgbox list_config $4;; 1.278 + Ver*) xterm -T "$4 `gettext \"receipt (q to quit)\"`" -e "cat $RECEIPT | less";; 1.279 + esac 1.280 + exit 0 1.281 + fi 1.282 + 1.283 + if [ "$2" = "list_files" ]; then 1.284 + CONF_FILES="$(tazpkg list-config $3 | awk "$AWK_FILTER")" 1.285 + if [ "$CONF_FILES" ]; then 1.286 + mkdir $TMP_DIR 1.287 + zcat $ROOT/installed/$3/volatile.cpio.gz | \ 1.288 + ( cd $TMP_DIR ; cpio -id > /dev/null ) 1.289 + fi 1.290 + cat $ROOT/installed/$3/files.list | grep ^/ | while read file; do 1.291 + realfile="$file" 1.292 + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 1.293 + realfile="$(readlink /var/lib/tazpkg/fslink)$file" 1.294 + fi 1.295 + echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \ 1.296 + echo "File lost !||||$file|")" 1.297 + if [ -L "$realfile" ]; then 1.298 + echo -n "$(readlink "$realfile")" 1.299 + elif [ -f "$file" ]; then 1.300 + case "$CONF_FILES" in 1.301 + *$file*) 1.302 + if cmp $file $TMP_DIR$file > /dev/null 2>&1; then 1.303 + echo -n "[configuration]" 1.304 + else 1.305 + echo -n "$(stat -c "[configuration: %.16y]" $file)" 1.306 + fi;; 1.307 + #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then 1.308 + # echo -n "Invalid md5" 1.309 + # fi;; 1.310 + esac 1.311 + fi 1.312 + echo "" 1.313 + done 1.314 + [ "$CONF_FILES" ] && rm -rf $TMP_DIR 1.315 + exit 0 1.316 + fi 1.317 + 1.318 + if [ "$2" = "list_files_mirror" ]; then 1.319 + for i in /var/lib/tazpkg/files.list.lzma \ 1.320 + /var/lib/tazpkg/undigest/*/files.list.lzma ; do 1.321 + [ -f $i ] || continue 1.322 + unlzma -c $i 1.323 + done | grep -- "^$3:" | awk '{ print substr($0,index($0,":")+2) }' 1.324 + exit 0 1.325 + fi 1.326 + 1.327 + if [ "$2" = "list_packages" ]; then 1.328 + PKG="$3" 1.329 + if [ "$4" ]; then 1.330 + shift 1.331 + export LIST_PKGS=' 1.332 + <window title="Packages" icon-name="tazpkg"> 1.333 + <vbox> 1.334 + <tree> 1.335 + <width>600</width><height>160</height> 1.336 + <label>Package|Version|Size|Description</label> 1.337 + <variable>PKG</variable> 1.338 + ' 1.339 + for i in "$@"; do 1.340 + if [ -d $ROOT/installed/$i ]; then 1.341 + . $ROOT/installed/$i/receipt 1.342 + LIST_PKGS="$LIST_PKGS 1.343 + <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item> 1.344 + " 1.345 + else 1.346 + RES=`grep -sh "^$i " \ 1.347 + /var/lib/tazpkg/packages.desc \ 1.348 + /var/lib/tazpkg/undigest/*/packages.desc` 1.349 + PACKAGE=`echo "$RES" | cut -d "|" -f 1` 1.350 + VERSION=`echo "$RES" | cut -d "|" -f 2` 1.351 + SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` 1.352 + SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \ 1.353 + /var/lib/tazpkg/packages.txt \ 1.354 + /var/lib/tazpkg/undigest/*/packages.txt | \ 1.355 + tail -1 | sed 's/.*(\(.*\) .*/\1/'` 1.356 + LIST_PKGS="$LIST_PKGS 1.357 + <item icon=\"tazpkg\">$i|$VERSION|$SIZE|$SHORT_DESC</item> 1.358 + " 1.359 + fi 1.360 + done 1.361 + LIST_PKGS="$LIST_PKGS 1.362 + <action>echo "\$PKG" > /tmp/tazpkgbox/pkg</action> 1.363 + <action>$0 package-infos</action> 1.364 + <action>refresh:PKG</action> 1.365 + <action>refresh:PKG_STATS</action> 1.366 + <action>refresh:CACHE_STATS</action> 1.367 + </tree> 1.368 + <hbox> 1.369 + <button ok> 1.370 + </button> 1.371 + <button cancel> 1.372 + <action type=\"closewindow\">LIST_PKGS</action> 1.373 + </button> 1.374 + </hbox> 1.375 + </vbox> 1.376 + </window> 1.377 + " 1.378 + eval `gtkdialog --center --program=LIST_PKGS` 1.379 + [ "$EXIT" = "OK" ] || exit 0 1.380 + fi 1.381 + fi 1.382 + 1.383 + export LIST_FILES=" 1.384 + <window title=\"`eval_gettext \"\\$PKG files\"`\" icon-name=\"system-file-manager\"> 1.385 + <vbox> 1.386 + <tree exported_column=\"4\"> 1.387 + <variable>FILE</variable> 1.388 + <width>600</width><height>160</height> 1.389 + <label>Access | User | Group | Size | Name | Target</label> 1.390 + <input> $0 package-infos list_files $PKG </input> 1.391 + <action>tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE</action> 1.392 + </tree> 1.393 + <hbox> 1.394 + <button> 1.395 + <input file icon=\"gtk-close\"></input> 1.396 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.397 + </button> 1.398 + </hbox> 1.399 + </vbox> 1.400 + </window> 1.401 + " 1.402 + 1.403 + export LIST_FILES_MIRROR=" 1.404 + <window title=\"$PKG files\" icon-name=\"system-file-manager\"> 1.405 + <vbox> 1.406 + <tree> 1.407 + <width>300</width><height>160</height> 1.408 + <label>File Name</label> 1.409 + <input> $0 package-infos list_files_mirror $PKG </input> 1.410 + </tree> 1.411 + <hbox> 1.412 + <button> 1.413 + <input file icon=\"gtk-close\"></input> 1.414 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.415 + </button> 1.416 + </hbox> 1.417 + </vbox> 1.418 + </window> 1.419 + " 1.420 + 1.421 + # Installed or not installed, that is the question! 1.422 + if [ -d $ROOT/installed/$PKG ]; then 1.423 + PACKED_SIZE="" 1.424 + DEPENDS="" 1.425 + MAINTAINER="" 1.426 + BUGS="" 1.427 + TAGS="" 1.428 + . $ROOT/installed/$PKG/receipt 1.429 + MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') 1.430 + upgrade_version="$(cat /var/lib/tazpkg/packages.desc \ 1.431 + /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \ 1.432 + awk "/^$PACKAGE / { print \$3 }" | head -1 )" 1.433 + UPGRADE="" 1.434 + if [ "$upgrade_version" ]; then 1.435 + if [ "$upgrade_version" != "$VERSION" ]; then 1.436 + UPGRADE="$upgrade_version" 1.437 + else 1.438 + cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \ 1.439 + $ROOT/installed.md5)" 1.440 + new_md5="$(cat /var/lib/tazpkg/packages.md5 \ 1.441 + /var/lib/tazpkg/undigest/*/packages.md5 \ 1.442 + 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")" 1.443 + if [ "$cur_md5" -a "$new_md5" -a \ 1.444 + "$cur_md5" != "$new_md5" ]; then 1.445 + UPGRADE="build" 1.446 + fi 1.447 + fi 1.448 + fi 1.449 + PACKAGE_INFOS=" 1.450 + <window title=\"Package: $PKG\" icon-name=\"package-x-generic\"> 1.451 + <vbox> 1.452 + 1.453 + <tree> 1.454 + <width>460</width><height>200</height> 1.455 + <label>$PKG|$SHORT_DESC</label> 1.456 + <variable>FIELD</variable> 1.457 + <item icon=\"tazpkg\">Version: | $VERSION</item> 1.458 + <item icon=\"tazpkg\">Category: | $CATEGORY</item>" 1.459 + [ "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.460 + <item icon=\"tazpkg\">Upgrade: | $(echo $UPGRADE)</item>" 1.461 + [ "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.462 + <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>" 1.463 + [ "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.464 + <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>" 1.465 + [ "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.466 + <item icon=\"tazpkg\">Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)</item>" 1.467 + [ "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.468 + <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>" 1.469 + [ "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.470 + <item icon=\"important\">Bugs: | $BUGS</item>" 1.471 + [ "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.472 + <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>" 1.473 + [ "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.474 + <item icon=\"tazpkg\">Tags: | $TAGS</item>" 1.475 + [ "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.476 + <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>" 1.477 + [ -f $ROOT/installed/$PKG/modifiers ] && 1.478 + PACKAGE_INFOS="$PACKAGE_INFOS 1.479 + <item icon=\"tazpkg\">Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)</item>" 1.480 + PACKAGE_INFOS="$PACKAGE_INFOS 1.481 + <item icon=\"applications-internet\">Website: | $WEB_SITE</item> 1.482 + <item icon=\"help\">Tip: | double-click any item for more information</item> 1.483 + <action> $0 package-infos info \"\$FIELD\" $PKG </action> 1.484 + </tree> 1.485 + 1.486 + <hbox>" 1.487 + [ -s $ROOT/installed/$PACKAGE/description.txt ] && 1.488 + PACKAGE_INFOS="$PACKAGE_INFOS 1.489 + <button> 1.490 + <label>Description</label> 1.491 + <input file icon=\"help\"></input> 1.492 + <action>xterm -T \"$PKG description (q to quit)\" $XTERM_OPTS \ 1.493 + -e \"less $ROOT/installed/$PKG/description.txt\"</action> 1.494 + </button>" 1.495 + if [ ! -d /var/lib/tazpkg/fslink ]; then 1.496 + [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.497 + <button> 1.498 + <label>Install</label> 1.499 + <input file icon=\"go-next\"></input> 1.500 + <action>xterm -T \"Install ${PKG#get-}\" $XTERM_OPTS -e \"\ 1.501 + $PKG; sleep 5\"</action> 1.502 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.503 + </button>" 1.504 + [ "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.505 + <button> 1.506 + <label>Upgrade</label> 1.507 + <input file icon=\"go-next\"></input> 1.508 + <action>xterm -T \"Install $PKG\" $XTERM_OPTS -e \"\ 1.509 + tazpkg get-install $PKG --forced ; sleep 5\"</action> 1.510 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.511 + </button>" 1.512 + fgrep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS 1.513 + <button> 1.514 + <label>Reconfigure</label> 1.515 + <input file icon=\"reload\"></input> 1.516 + <action>xterm -T \"Reconfigure $PACKAGE\" $XTERM_OPTS -e \"\ 1.517 + tazpkg reconfigure $PACKAGE; sleep 2\"</action> 1.518 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.519 + </button>" 1.520 + if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then 1.521 + PACKAGE_INFOS="$PACKAGE_INFOS 1.522 + <button> 1.523 + <label>Unblock</label> 1.524 + <input file icon=\"up\"></input> 1.525 + <action>xterm -T \"Unblock $PACKAGE\" $XTERM_OPTS -e \"\ 1.526 + tazpkg unblock $PACKAGE; sleep 2\"</action> 1.527 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.528 + </button>" 1.529 + else 1.530 + PACKAGE_INFOS="$PACKAGE_INFOS 1.531 + <button> 1.532 + <label>Block</label> 1.533 + <input file icon=\"down\"></input> 1.534 + <action>xterm -T \"Block $PACKAGE\" $XTERM_OPTS -e \"\ 1.535 + tazpkg block $PACKAGE; sleep 2\"</action> 1.536 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.537 + </button>" 1.538 + fi 1.539 + fi 1.540 + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then 1.541 + PACKAGE_INFOS="$PACKAGE_INFOS 1.542 + <button> 1.543 + <label>Link</label> 1.544 + <input file icon=\"edit-redo\"></input> 1.545 + <action>xterm -T \"Link $PACKAGE\" $XTERM_OPTS -e \"\ 1.546 + tazpkg link $PACKAGE $(readlink /var/lib/tazpkg/fslink); sleep 2\"</action> 1.547 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.548 + </button>" 1.549 + elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then 1.550 + [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS 1.551 + <button> 1.552 + <label>Repack</label> 1.553 + <input file icon=\"edit-redo\"></input> 1.554 + <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\ 1.555 + cd /var/cache/tazpkg; \ 1.556 + tazpkg repack $PACKAGE; sleep 2\"</action> 1.557 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.558 + </button> 1.559 + " 1.560 + PACKAGE_INFOS="$PACKAGE_INFOS 1.561 + <button> 1.562 + <label>Remove</label> 1.563 + <input file icon=\"edit-delete\"></input> 1.564 + <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\ 1.565 + tazpkg remove $PACKAGE; sleep 2\"</action> 1.566 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.567 + </button> 1.568 + " 1.569 + else 1.570 + PACKAGE_INFOS="$PACKAGE_INFOS 1.571 + <button> 1.572 + <label>Re-install</label> 1.573 + <input file icon=\"edit-redo\"></input> 1.574 + <action>xterm -T \"Re-install $PACKAGE\" $XTERM_OPTS -e \"\ 1.575 + tazpkg get-install $PACKAGE --forced; sleep 2\"</action> 1.576 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.577 + </button> 1.578 + <button> 1.579 + <label>Remove</label> 1.580 + <input file icon=\"edit-delete\"></input> 1.581 + <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\ 1.582 + tazpkg remove $PACKAGE; sleep 2\"</action> 1.583 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.584 + </button> 1.585 + " 1.586 + fi 1.587 + PACKAGE_INFOS="$PACKAGE_INFOS 1.588 + <button> 1.589 + <label>View Files</label> 1.590 + <input file icon=\"tazpkg\"></input> 1.591 + <action type=\"launch\">LIST_FILES</action> 1.592 + </button> 1.593 + <button> 1.594 + <input file icon=\"gtk-close\"></input> 1.595 + <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action> 1.596 + </button> 1.597 + </hbox> 1.598 + 1.599 + </vbox> 1.600 + </window> 1.601 + " 1.602 + export PACKAGE_INFOS 1.603 + else 1.604 + RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \ 1.605 + /var/lib/tazpkg/undigest/*/packages.desc` 1.606 + PACKAGE=`echo "$RES" | cut -d "|" -f 1` 1.607 + VERSION=`echo "$RES" | cut -d "|" -f 2` 1.608 + SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` 1.609 + CATEGORY=`echo "$RES" | cut -d "|" -f 4` 1.610 + WEB_SITE=`echo "$RES" | cut -d "|" -f 5` 1.611 + SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \ 1.612 + /var/lib/tazpkg/undigest/*/packages.txt | tail -1` 1.613 + DEPENDS="" 1.614 + SUGGESTED="" 1.615 + MAINTAINER="" 1.616 + BUGS="" 1.617 + HANDBOOK_URL="" 1.618 + TAGS="" 1.619 + CONFIG_FILES="" 1.620 + height=160 1.621 + if [ -s /home/slitaz/wok/$PKG/receipt ]; then 1.622 + . /home/slitaz/wok/$PKG/receipt 1.623 + height=200 1.624 + fi 1.625 + PACKAGE_INFOS=" 1.626 + <window title=\"Package: $PACKAGE\" icon-name=\"package-x-generic\"> 1.627 + <vbox> 1.628 + 1.629 + <tree> 1.630 + <width>460</width><height>$height</height> 1.631 + <label>$PKG|$SHORT_DESC</label> 1.632 + <variable>FIELD2</variable> 1.633 + <item icon=\"tazpkg\">Version: | $VERSION</item> 1.634 + <item icon=\"tazpkg\">Category: | $CATEGORY</item>" 1.635 + [ "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.636 + <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>" 1.637 + [ "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.638 + <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>" 1.639 + [ "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.640 + <item icon=\"tazpkg\">Size: | $SIZES</item>" 1.641 + [ "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.642 + <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>" 1.643 + [ "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.644 + <item icon=\"important\">Bugs: | $BUGS</item>" 1.645 + [ "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.646 + <item icon=\"ascii\">Handbook: | $HANDBOOK_URL</item>" 1.647 + [ "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.648 + <item icon=\"tazpkg\">Tags: | $TAGS</item>" 1.649 + [ "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.650 + <item icon=\"tazpkg\">Config files: | $CONFIG_FILES</item>" 1.651 + PACKAGE_INFOS="$PACKAGE_INFOS 1.652 + <item icon=\"applications-internet\">Website: | $WEB_SITE</item> 1.653 + <item icon=\"text-editor\">Receipt: | double-click to view receipt</item> 1.654 + <action>case \$FIELD2 in Web*) browser $WEB_SITE &;; esac</action> 1.655 + <action>case \$FIELD2 in Rec*) browser http://hg.slitaz.org/wok/raw-file/tip/$PACKAGE/receipt &;; esac</action> 1.656 + 1.657 + </tree> 1.658 + 1.659 + <hbox>" 1.660 + [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS 1.661 + <checkbox> 1.662 + <label>Auto exec</label> 1.663 + <variable>AUTO_EXEC</variable> 1.664 + <default>true</default> 1.665 + </checkbox>" 1.666 + PACKAGE_INFOS="$PACKAGE_INFOS 1.667 + <checkbox> 1.668 + <label>Auto install depends</label> 1.669 + <variable>AUTO_DEPENDS</variable> 1.670 + <default>true</default> 1.671 + </checkbox> 1.672 + <button> 1.673 + <label>Install Package</label> 1.674 + <input file icon=\"go-next\"></input> 1.675 + <action>xterm -T \"Install $PACKAGE\" $XTERM_OPTS -e \"\ 1.676 + if [ x\$AUTO_DEPENDS != xtrue ]; then script -c \\\"tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log;\ 1.677 + else script -c \\\"yes y | tazpkg get-install $PACKAGE\\\" /var/log/tazpkg-install.log; fi; \ 1.678 + [ x\${AUTO_EXEC} = xtrue ] && $PACKAGE; \ 1.679 + sleep 2\"</action> 1.680 + <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> 1.681 + </button> 1.682 + <button> 1.683 + <label>Download</label> 1.684 + <input file icon=\"go-next\"></input> 1.685 + <action>xterm -T \"Get $PACKAGE\" $XTERM_OPTS -e \"\ 1.686 + cd /var/cache/tazpkg; tazpkg get $PACKAGE; sleep 2\"</action> 1.687 + <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> 1.688 + </button> 1.689 + <button> 1.690 + <label>View Files</label> 1.691 + <input file icon=\"tazpkg\"></input> 1.692 + <action type=\"launch\">LIST_FILES_MIRROR</action> 1.693 + </button> 1.694 + <button> 1.695 + <input file icon=\"gtk-close\"></input> 1.696 + <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action> 1.697 + </button> 1.698 + </hbox> 1.699 + 1.700 + </vbox> 1.701 + </window> 1.702 + " 1.703 + export PACKAGE_INFOS 1.704 + fi 1.705 + gtkdialog --center --program=PACKAGE_INFOS ;; 1.706 + 1.707 + *) 1.708 + usage $@ ;; 1.709 +esac 1.710 + 1.711 +exit 0