tazpkg annotate oldstuff/libtazpkgbox @ rev 976

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