tazpkg annotate lib/tazpkgbox/package_infos @ rev 174

tazpkgbox: add double click for depends & suggested
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Oct 20 16:34:19 2008 +0000 (2008-10-20)
parents e47a62082826
children a0d51bc28e4e
rev   line source
pankso@81 1 #!/bin/sh
pankso@81 2 #
MikeDSmith25@135 3 # Dialog box to provide package info and actions
pankso@81 4 #
pankso@81 5
pankso@81 6 XTERM_OPTS="-geometry 80x16+120+120"
pankso@81 7
pankso@81 8 PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g`
pascal@146 9 TMP_DIR=/tmp/tazpkg-$$-$RANDOM
pankso@81 10
pascal@97 11 if [ "$1" = "list_files" ]; then
pascal@143 12 AWK_FILTER='BEGIN { ls=0 } { if (/^===/) ls=1-ls; else if (ls) print; }'
pascal@143 13 CONF_FILES="$(tazpkg list-config $2 | awk "$AWK_FILTER")"
pascal@146 14 if [ -n "$CONF_FILES" ]; then
pascal@146 15 mkdir $TMP_DIR
pascal@146 16 zcat /var/lib/tazpkg/installed/$2/volatile.cpio.gz | \
pascal@146 17 ( cd $TMP_DIR ; cpio -id > /dev/null )
pascal@146 18 fi
pascal@143 19 tazpkg list-files $2 | awk "$AWK_FILTER" | while read file; do
pascal@156 20 echo -n "$(stat -c "%A|%U|%G|%s|%n|" "$file" || \
pascal@171 21 echo "File lost !||||$file|")"
pascal@143 22 if [ -L "$file" ]; then
pascal@143 23 echo -n "$(readlink "$file")"
pascal@143 24 elif [ -f "$file" ]; then
pascal@143 25 case "$CONF_FILES" in
pascal@146 26 *$file*)
pascal@146 27 if cmp $file $TMP_DIR$file > /dev/null 2>&1; then
pascal@146 28 echo -n "[configuration]"
pascal@146 29 else
pascal@146 30 echo -n "$(stat -c "[configuration: %.16y]" $file)"
pascal@146 31 fi;;
pascal@143 32 esac
pascal@143 33 fi
pascal@143 34 echo ""
pascal@143 35 done
pascal@146 36 [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR
pascal@97 37 exit 0
pascal@97 38 fi
pascal@97 39
pascal@99 40 if [ "$1" = "list_files_mirror" ]; then
pascal@99 41 unlzma -c /var/lib/tazpkg/files.list.lzma | grep -- "^$2:" | \
pascal@99 42 awk '{ print substr($0,index($0,":")+2) }'
pascal@99 43 exit 0
pascal@99 44 fi
pascal@99 45
pascal@174 46 if [ "$1" = "list_packages" ]; then
pascal@174 47 PKG="$2"
pascal@174 48 if [ -n "$3" ]; then
pascal@174 49 shift
pascal@174 50 export LIST_PKGS='
pascal@174 51 <window title="Packages" icon-name="tazpkg">
pascal@174 52 <vbox>
pascal@174 53 <tree>
pascal@174 54 <width>600</width><height>160</height>
pascal@174 55 <label>Package|Version|Size|Description</label>
pascal@174 56 <variable>PKG</variable>
pascal@174 57 '
pascal@174 58 for i in "$@"; do
pascal@174 59 if [ -d /var/lib/tazpkg/installed/$i ]; then
pascal@174 60 . /var/lib/tazpkg/installed/$i/receipt
pascal@174 61 LIST_PKGS="$LIST_PKGS
pascal@174 62 <item icon=\"tazpkg\">$i|$VERSION|Installed|$SHORT_DESC</item>
pascal@174 63 "
pascal@174 64 else
pascal@174 65 RES=`grep "^$i " /var/lib/tazpkg/packages.desc`
pascal@174 66 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
pascal@174 67 VERSION=`echo "$RES" | cut -d "|" -f 2`
pascal@174 68 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
pascal@174 69 SIZE=`grep -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt | tail -1 | sed 's/.*(\(.*\) .*/\1/'`
pascal@174 70 LIST_PKGS="$LIST_PKGS
pascal@174 71 <item icon=\"tazpkg\">$i|$VERSION|$SIZE|$SHORT_DESC</item>
pascal@174 72 "
pascal@174 73 fi
pascal@174 74 done
pascal@174 75 LIST_PKGS="$LIST_PKGS
pascal@174 76 </tree>
pascal@174 77 <hbox>
pascal@174 78 <button ok>
pascal@174 79 </button>
pascal@174 80 <button cancel>
pascal@174 81 <action type=\"closewindow\">LIST_PKGS</action>
pascal@174 82 </button>
pascal@174 83 </hbox>
pascal@174 84 </vbox>
pascal@174 85 </window>
pascal@174 86 "
pascal@174 87 eval `gtkdialog --center --program=LIST_PKGS`
pascal@174 88 [ "$EXIT" = "OK" ] || exit 0
pascal@174 89 fi
pascal@174 90 fi
pascal@174 91
pascal@97 92 export LIST_FILES="
pascal@97 93 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
pascal@97 94 <vbox>
pascal@143 95 <tree exported_column=\"4\">
pascal@143 96 <variable>FILE</variable>
pascal@97 97 <width>600</width><height>160</height>
pascal@143 98 <label>Access | User | Group | Size | Name | Target</label>
pascal@97 99 <input> $0 list_files $PKG </input>
pascal@143 100 <action>tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE</action>
pascal@97 101 </tree>
pascal@97 102 <hbox>
pascal@97 103 <button>
pascal@97 104 <input file icon=\"gtk-close\"></input>
pascal@97 105 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@97 106 </button>
pascal@97 107 </hbox>
pascal@97 108 </vbox>
pascal@97 109 </window>
pascal@97 110 "
pascal@97 111
pascal@99 112 export LIST_FILES_MIRROR="
pascal@99 113 <window title=\"$PKG files\" icon-name=\"system-file-manager\">
pascal@99 114 <vbox>
pascal@99 115 <tree>
pascal@99 116 <width>300</width><height>160</height>
pascal@99 117 <label>File Name</label>
pascal@99 118 <input> $0 list_files_mirror $PKG </input>
pascal@99 119 </tree>
pascal@99 120 <hbox>
pascal@99 121 <button>
pascal@99 122 <input file icon=\"gtk-close\"></input>
pascal@99 123 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@99 124 </button>
pascal@99 125 </hbox>
pascal@99 126 </vbox>
pascal@99 127 </window>
pascal@99 128 "
pascal@99 129
pankso@81 130 # Installed or not installed, that the question.
pankso@81 131 if [ -d /var/lib/tazpkg/installed/$PKG ]; then
pascal@87 132 PACKED_SIZE=""
pascal@88 133 DEPENDS=""
pascal@133 134 MAINTAINER=""
pascal@173 135 BUGS=""
pankso@81 136 . /var/lib/tazpkg/installed/$PKG/receipt
pascal@133 137 MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g')
pascal@87 138 PACKAGE_INFOS="
pankso@81 139 <window title=\"Package: $PKG\" icon-name=\"package-x-generic\">
pankso@81 140 <vbox>
pankso@81 141
pankso@81 142 <tree>
pascal@174 143 <width>460</width><height>200</height>
pascal@150 144 <label>$PKG|$SHORT_DESC</label>
pascal@131 145 <variable>FIELD</variable>
pankso@81 146 <item icon=\"tazpkg\">Version: | $VERSION</item>
pascal@88 147 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
pascal@88 148 [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@131 149 <item icon=\"tazpkg\">Depends: | $(echo $DEPENDS)</item>"
pascal@162 150 [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@162 151 <item icon=\"tazpkg\">Suggested: | $(echo $SUGGESTED)</item>"
pascal@87 152 [ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@87 153 <item icon=\"tazpkg\">Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)</item>"
pascal@132 154 [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@132 155 <item icon=\"system-users\">Maintainer: | $MAINTAINER</item>"
pascal@173 156 [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@173 157 <item icon=\"error\">Bugs: | $BUGS</item>"
pascal@87 158 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@81 159 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item>
pascal@174 160 <action>case \$FIELD in Web*) firefox $WEB_SITE &;; Sug*) $0 list_packages $SUGGESTED;; Dep*) $0 list_packages $DEPENDS;; esac</action>
pankso@81 161 </tree>
pankso@81 162
pascal@92 163 <hbox>"
pascal@130 164 [ $CATEGORY = non-free -a ! -d /var/lib/tazpkg/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@130 165 <button>
pascal@130 166 <label>Install</label>
pascal@130 167 <input file icon=\"go-next\"></input>
pascal@130 168 <action>xterm -T \"Install ${PKG#get-}\" $XTERM_OPTS -e \"\
pascal@130 169 $PKG; sleep 5\"</action>
pascal@130 170 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@130 171 </button>"
pascal@92 172 grep -q post_install /var/lib/tazpkg/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@92 173 <button>
pascal@92 174 <label>Reconfigure</label>
pascal@92 175 <input file icon=\"reload\"></input>
pascal@92 176 <action>xterm -T \"Reconfigure $PACKAGE\" $XTERM_OPTS -e \"\
pascal@92 177 tazpkg reconfigure $PACKAGE; sleep 2\"</action>
pascal@92 178 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@92 179 </button>"
pascal@153 180 if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then
pascal@93 181 PACKAGE_INFOS="$PACKAGE_INFOS
pascal@93 182 <button>
pascal@93 183 <label>Unblock</label>
pascal@93 184 <input file icon=\"up\"></input>
pascal@93 185 <action>xterm -T \"Unblock $PACKAGE\" $XTERM_OPTS -e \"\
pascal@93 186 tazpkg unblock $PACKAGE; sleep 2\"</action>
pascal@93 187 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@93 188 </button>"
pascal@93 189 else
pascal@93 190 PACKAGE_INFOS="$PACKAGE_INFOS
pascal@93 191 <button>
pascal@93 192 <label>Block</label>
pascal@93 193 <input file icon=\"down\"></input>
pascal@93 194 <action>xterm -T \"Block $PACKAGE\" $XTERM_OPTS -e \"\
pascal@93 195 tazpkg block $PACKAGE; sleep 2\"</action>
pascal@93 196 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@93 197 </button>"
pascal@93 198 fi
pascal@92 199 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@81 200 <button>
pankso@81 201 <label>Remove</label>
pankso@81 202 <input file icon=\"edit-delete\"></input>
pankso@81 203 <action>xterm -T \"Remove $PACKAGE\" $XTERM_OPTS -e \"\
pankso@81 204 tazpkg remove $PACKAGE; sleep 2\"</action>
pankso@81 205 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@81 206 </button>
pankso@81 207 <button>
pankso@81 208 <label>Repack</label>
pankso@81 209 <input file icon=\"edit-redo\"></input>
pankso@81 210 <action>xterm -T \"Repack $PACKAGE\" $XTERM_OPTS -e \"\
pankso@81 211 cd /var/cache/tazpkg; \
pankso@81 212 tazpkg repack $PACKAGE; sleep 2\"</action>
pankso@81 213 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@81 214 </button>
pankso@81 215 <button>
pascal@97 216 <label>Files</label>
pascal@97 217 <input file icon=\"tazpkg\"></input>
pascal@97 218 <action type=\"launch\">LIST_FILES</action>
pascal@97 219 </button>
pascal@97 220 <button>
pankso@81 221 <input file icon=\"gtk-close\"></input>
pankso@81 222 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pankso@81 223 </button>
pankso@81 224 </hbox>
pankso@81 225
pankso@81 226 </vbox>
pankso@81 227 </window>
pankso@81 228 "
pascal@87 229 export PACKAGE_INFOS
pankso@81 230 else
pascal@171 231 RES=`grep "^$PKG " /var/lib/tazpkg/packages.desc`
pankso@81 232 PACKAGE=`echo "$RES" | cut -d "|" -f 1`
pankso@81 233 VERSION=`echo "$RES" | cut -d "|" -f 2`
pascal@150 234 SHORT_DESC=`echo "$RES" | cut -d "|" -f 3`
pankso@81 235 CATEGORY=`echo "$RES" | cut -d "|" -f 4`
pankso@81 236 WEB_SITE=`echo "$RES" | cut -d "|" -f 5`
pascal@90 237 SIZES=`grep -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt | tail -1`
pascal@90 238 PACKAGE_INFOS="
pankso@81 239 <window title=\"Package: $PACKAGE\" icon-name=\"package-x-generic\">
pankso@81 240 <vbox>
pankso@81 241
pankso@81 242 <tree>
pascal@174 243 <width>460</width><height>160</height>
pascal@150 244 <label>$PKG|$SHORT_DESC</label>
pankso@81 245 <item icon=\"tazpkg\">Name: | $PACKAGE</item>
pankso@81 246 <item icon=\"tazpkg\">Version: | $VERSION</item>
pascal@90 247 <item icon=\"tazpkg\">Category: | $CATEGORY</item>"
pascal@90 248 [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@90 249 <item icon=\"tazpkg\">Size: | $SIZES</item>"
pascal@90 250 PACKAGE_INFOS="$PACKAGE_INFOS
pankso@81 251 <item icon=\"applications-internet\">Web site: | $WEB_SITE</item>
pascal@172 252 <action>case \$FIELD in Web*) firefox $WEB_SITE &;; esac</action>
pankso@81 253 </tree>
pankso@81 254
pascal@130 255 <hbox>"
pascal@130 256 [ $CATEGORY = non-free ] && PACKAGE_INFOS="$PACKAGE_INFOS
pascal@130 257 <checkbox>
pascal@130 258 <label>Auto exec</label>
pascal@130 259 <variable>AUTO_EXEC</variable>
pascal@130 260 <default>true</default>
pascal@130 261 </checkbox>"
pascal@130 262 PACKAGE_INFOS="$PACKAGE_INFOS
pascal@130 263 <checkbox>
pascal@130 264 <label>Auto install depends</label>
pascal@130 265 <variable>AUTO_DEPENDS</variable>
pascal@130 266 <default>true</default>
pascal@130 267 </checkbox>
pankso@81 268 <button>
pankso@81 269 <label>Get-install</label>
pankso@81 270 <input file icon=\"go-next\"></input>
pankso@81 271 <action>xterm -T \"Install $PACKAGE\" $XTERM_OPTS -e \"\
pascal@130 272 if [ \$AUTO_DEPENDS != true ]; then tazpkg get-install $PACKAGE;\
pascal@130 273 else yes y | tazpkg get-install $PACKAGE; fi; \
pascal@130 274 [ \${AUTO_EXEC}$CATEGORY = truenon-free ] && $PACKAGE; \
pascal@130 275 sleep 2\"</action>
pankso@81 276 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@81 277 </button>
pankso@81 278 <button>
pankso@81 279 <label>Get</label>
pankso@81 280 <input file icon=\"go-next\"></input>
pankso@81 281 <action>xterm -T \"Get $PACKAGE\" $XTERM_OPTS -e \"\
pankso@81 282 cd /var/cache/tazpkg; tazpkg get $PACKAGE; sleep 2\"</action>
pankso@81 283 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@81 284 </button>
pankso@81 285 <button>
pascal@99 286 <label>Files</label>
pascal@99 287 <input file icon=\"tazpkg\"></input>
pascal@99 288 <action type=\"launch\">LIST_FILES_MIRROR</action>
pascal@99 289 </button>
pascal@99 290 <button>
pankso@81 291 <input file icon=\"gtk-close\"></input>
pankso@81 292 <action type=\"closewindow\">MIRRORED_PACKAGE_ACTIONS</action>
pankso@81 293 </button>
pankso@81 294 </hbox>
pankso@81 295
pankso@81 296 </vbox>
pankso@81 297 </window>
pankso@81 298 "
pascal@90 299 export PACKAGE_INFOS
pankso@81 300 fi
pankso@81 301
pankso@81 302 gtkdialog --center --program=PACKAGE_INFOS
pankso@81 303
pankso@81 304 exit 0