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 |