tazpkg annotate tazpkgbox @ rev 237

tazpkgbox: edit help and tiny fix
author Christophe Lincoln <pankso@slitaz.org>
date Wed Feb 25 22:37:30 2009 +0100 (2009-02-25)
parents 3b6cd157c06b
children 826589393fdf
rev   line source
pankso@82 1 #!/bin/sh
pankso@82 2 #
pankso@231 3 # GTKdialog interface to SliTaz Packages Manager aka Tazpkg. Notes:
pankso@231 4 # Notebook tab are vbox, tab are used to indent and functions are
pankso@231 5 # splited ang found in $LIB.
pankso@82 6 #
pankso@229 7 # (C) GNU gpl v3 - SliTaz GNU/Linux 2009.
pankso@82 8 #
pascal@211 9 VERSION=2.6
pankso@82 10
pankso@231 11 # Functions path.
pankso@237 12 export LIB=/usr/lib/slitaz/tazpkgbox
pankso@231 13
pankso@82 14 # Tazpkgbox is only for root.
pankso@82 15 if test $(id -u) != 0 ; then
pankso@82 16 exec subox tazpkgbox
pankso@82 17 exit 0
pankso@82 18 fi
pankso@82 19
pankso@82 20 # We need at least a mirror URL.
pankso@82 21 if [ ! -f /var/lib/tazpkg/mirror ]; then
pankso@82 22 tazpkg >/dev/null
pankso@82 23 fi
pankso@82 24
pankso@82 25 # Tmp dir and files used to get pkgs infos on the fly. Clean also
pankso@82 26 # list and search files to load less data and have a faster start.
pankso@82 27 mkdir -p /tmp/tazpkgbox
pankso@230 28 echo "all" > /tmp/tazpkgbox/status
pankso@230 29 echo "all" > /tmp/tazpkgbox/category
pascal@187 30 echo "all" > /tmp/tazpkgbox/undigest-category
pankso@233 31 echo "" > /tmp/tazpkgbox/search
pankso@82 32
pankso@82 33 # English/French help dialod.
pankso@82 34 export HELP='
pankso@82 35 <window title="Tazpkgbox Help" icon-name="help">
pankso@82 36 <vbox>
pankso@82 37 <text use-markup="true" width-chars="54">
pankso@82 38 <label>"
pankso@82 39 <b>Tazpkgbox - Packages Manager Help</b>"
pankso@82 40 </label>
pankso@82 41 </text>
pankso@86 42
pankso@82 43 <frame English>
pankso@82 44 <text wrap="false">
pankso@82 45 <label>"
pankso@86 46 Tazpkgbox is a simple and easy to use interface to the SliTaz
pankso@86 47 package manager - aka Tazpkg. You can install, remove, repack or
pankso@86 48 get packages by double-clicking on the package item. A Search engine
pankso@237 49 lets you find and install new applications in a few mouse clicks."
pankso@82 50 </label>
pankso@82 51 </text>
pankso@82 52 </frame>
pankso@86 53
pankso@82 54 <frame Français>
pankso@82 55 <text wrap="false">
pankso@82 56 <label>"
pankso@82 57 Tazpkgbox est une interface graphique au gestionnaire de paquet
pankso@86 58 de Slitaz aka Tazpkg. Simple et facile à utiliser, vous pouvez
pankso@237 59 installer, télécharger ou supprimer des paquets en double-cliquant
pankso@237 60 sur sa ligne. La fonction de recherche permet de facilement trouver
pankso@237 61 et installer des logiciels ou fichiers."
pankso@82 62 </label>
pankso@82 63 </text>
pankso@82 64 </frame>
pankso@86 65
pankso@82 66 <hbox>
pankso@82 67 <button ok>
pankso@82 68 <action type="closewindow">HELP</action>
pankso@82 69 </button>
pankso@82 70 </hbox>
pankso@82 71 </vbox>
pankso@82 72 </window>
pankso@82 73 '
pankso@82 74
pascal@210 75 FILES="$2"
pascal@210 76 [ "$1" = "list_config" ] || FILES=""
pascal@210 77 export LIST_CONFIG_FILES="
pascal@210 78 <window title=\"configuration files\" icon-name=\"system-file-manager\">
pascal@139 79 <vbox>
pascal@210 80 <tree exported_column=\"5\">
pascal@143 81 <width>560</width><height>160</height>
pascal@142 82 <variable>CONF_FILE</variable>
pascal@143 83 <label>Access | User | Group | Size | Update Date | Name</label>
pascal@210 84 <input>tazpkg list-config --box $FILES</input>
pascal@210 85 <action>leafpad \$CONF_FILE</action>
pascal@139 86 </tree>
pascal@139 87 <hbox>
pascal@210 88 <text wrap=\"false\">
pascal@142 89 <label>
pascal@210 90 \"Only files with Update Date have been modified after package installation\"
pascal@142 91 </label>
pascal@141 92 </text>
pascal@139 93 <button>
pascal@210 94 <input file icon=\"gtk-close\"></input>
pascal@210 95 <action type=\"closewindow\">INSTALLED_PACKAGE_ACTIONS</action>
pascal@139 96 </button>
pascal@139 97 </hbox>
pascal@139 98 </vbox>
pascal@139 99 </window>
pascal@210 100 "
pascal@210 101 if [ "$1" = "list_config" ]; then
pascal@210 102 gtkdialog --center --program=LIST_CONFIG_FILES >/dev/null
pascal@210 103 exit 0
pascal@210 104 fi
pascal@139 105
pascal@187 106 export SETUP_UNDIGEST='
pascal@187 107 <window title="undigest mirrors" icon-name="tazpkg">
pascal@187 108 <vbox>
pascal@187 109 <tree>
pascal@187 110 <width>560</width><height>160</height>
pascal@187 111 <variable>UNDIGEST_LIST</variable>
pascal@187 112 <label>Name | URL</label>
pascal@187 113 <input>tazpkg list-undigest --box</input>
pascal@187 114 <action>xterm -T "Remove undigest" -geometry 80x16+120+120 -e "tazpkg remove-undigest $UNDIGEST_LIST; sleep 2"</action>
pascal@187 115 </tree>
pascal@187 116 <hbox>
pascal@187 117 <text>
pascal@187 118 <label>URL:</label>
pascal@187 119 </text>
pascal@187 120 <entry>
pascal@187 121 <variable>UNDIGEST_URL</variable>
pascal@187 122 </entry>
pascal@187 123 </hbox>
pascal@187 124 <hbox>
pascal@187 125 <text>
pascal@187 126 <label>Name:</label>
pascal@187 127 </text>
pascal@187 128 <entry>
pascal@187 129 <variable>UNDIGEST_NAME</variable>
pascal@187 130 </entry>
pascal@187 131 <button>
pascal@187 132 <label>Add</label>
pascal@187 133 <input file icon="gtk-add"></input>
pascal@187 134 <action>tazpkg add-undigest "$UNDIGEST_NAME" $UNDIGEST_URL</action>
pascal@187 135 <action>refresh:UNDIGEST_LIST</action>
pascal@187 136 </button>
pascal@187 137 <button>
pascal@187 138 <label>Remove</label>
pascal@187 139 <input file icon="gtk-remove"></input>
pascal@187 140 <action>xterm -T "Remove undigest" -geometry 80x16+120+120 -e "tazpkg remove-undigest $UNDIGEST_NAME; sleep 2"</action>
pascal@187 141 <action>refresh:UNDIGEST_LIST</action>
pascal@187 142 </button>
pascal@187 143 <button>
pascal@187 144 <label>Update</label>
pascal@187 145 <input file icon="reload"></input>
pascal@187 146 <action>tazpkg setup-undigest "$UNDIGEST_NAME" $UNDIGEST_URL</action>
pascal@187 147 <action>refresh:UNDIGEST_LIST</action>
pascal@187 148 </button>
pascal@187 149 <button>
pascal@187 150 <input file icon="gtk-close"></input>
pascal@187 151 <action type="closewindow">SETUP_UNDIGEST</action>
pascal@187 152 </button>
pascal@187 153 </hbox>
pascal@187 154 </vbox>
pascal@187 155 </window>
pascal@187 156 '
pascal@187 157
pankso@229 158 # Scan notifycation
pankso@229 159 desktopbox notify "Scanning packages database" 6 &
pankso@229 160
pankso@82 161 # Main dialog
pankso@82 162 export TAZPKG_DIALOG='
pankso@82 163 <window title="SliTaz Packages Manager" icon-name="package-x-generic">
pankso@82 164 <vbox>
pankso@82 165
pankso@82 166 <hbox>
pankso@82 167 <text use-markup="true">
pankso@82 168 <label>"<b>Packages Manager</b>"</label>
pankso@82 169 </text>
pankso@82 170 <pixmap>
pankso@82 171 <input file>/usr/share/pixmaps/tazpkg.png</input>
pankso@82 172 </pixmap>
pankso@82 173 </hbox>
pankso@82 174
pankso@236 175 <notebook labels="Packages|Search|Undigest|Configuration">
pankso@82 176
pankso@82 177 <vbox>
pankso@82 178 <tree>
pankso@102 179 <width>620</width><height>240</height>
pankso@82 180 <variable>PKG</variable>
pankso@230 181 <label>Name|Version|Description</label>
pankso@230 182 <input icon_column="0">$LIB/list all</input>
pankso@82 183 <action>echo "$PKG" > /tmp/tazpkgbox/pkg</action>
pankso@230 184 <action>$LIB/package_infos</action>
pankso@82 185 <action>refresh:PKG</action>
pascal@187 186 <action>refresh:GETIT</action>
pankso@82 187 <action>refresh:PKG_STATS</action>
pankso@82 188 <action>refresh:CACHE_STATS</action>
pankso@82 189 </tree>
pankso@82 190 <hbox>
pankso@82 191 <text>
pankso@230 192 <label>"Status:"</label>
pankso@230 193 </text>
pankso@230 194 <combobox>
pankso@230 195 <variable>STATUS</variable>
pankso@230 196 <item>all</item>
pankso@230 197 <item>installed</item>
pankso@230 198 <item>installable</item>
pankso@230 199 <item>blocked</item>
pankso@230 200 </combobox>
pankso@230 201 <text>
pankso@82 202 <label>"Category:"</label>
pankso@82 203 </text>
pankso@82 204 <combobox>
pankso@230 205 <variable>CAT</variable>
pankso@82 206 <item>all</item>
pankso@82 207 <item>base-system</item>
pascal@160 208 <item>x-window</item>
pankso@82 209 <item>utilities</item>
pankso@82 210 <item>network</item>
pankso@82 211 <item>graphics</item>
pankso@82 212 <item>multimedia</item>
pankso@82 213 <item>office</item>
pankso@82 214 <item>development</item>
pankso@82 215 <item>system-tools</item>
pankso@82 216 <item>security</item>
pankso@82 217 <item>games</item>
pankso@82 218 <item>misc</item>
pankso@82 219 <item>meta</item>
pankso@82 220 <item>non-free</item>
pankso@82 221 </combobox>
pankso@82 222 <button>
pankso@82 223 <label>List</label>
pankso@82 224 <input file icon="reload"></input>
pankso@230 225 <action>echo "$CAT" > /tmp/tazpkgbox/category</action>
pankso@230 226 <action>echo "$STATUS" > /tmp/tazpkgbox/status</action>
pankso@82 227 <action>refresh:PKG</action>
pankso@82 228 </button>
pankso@82 229 </hbox>
pankso@82 230 </vbox>
pankso@230 231
pankso@230 232 <vbox>
pankso@233 233 <tree>
pankso@230 234 <width>620</width><height>120</height>
pankso@233 235 <variable>RESULT</variable>
pankso@236 236 <label>Packages Name|Version|Description / File</label>
pankso@233 237 <input icon_column="0">cat /tmp/tazpkgbox/search</input>
pankso@233 238 <action>echo "$RESULT" > /tmp/tazpkgbox/pkg</action>
pankso@230 239 <action>$LIB/package_infos</action>
pankso@230 240 <action>$LIB/search</action>
pankso@233 241 <action>refresh:RESULT</action>
pankso@230 242 <action>refresh:PKG</action>
pascal@130 243 <action>refresh:PKG_STATS</action>
pascal@130 244 <action>refresh:CACHE_STATS</action>
pascal@130 245 </tree>
pascal@130 246 <hbox>
pankso@230 247 <entry>
pankso@230 248 <variable>SEARCH</variable>
pankso@230 249 </entry>
pascal@130 250 <button>
pankso@233 251 <label>Packages</label>
pankso@230 252 <input file icon="system-search"></input>
pankso@233 253 <action>$LIB/search packages</action>
pankso@233 254 <action>refresh:RESULT</action>
pascal@130 255 </button>
pankso@82 256 <button>
pankso@233 257 <label>Files</label>
pankso@230 258 <input file icon="system-search"></input>
pankso@233 259 <action>$LIB/search files</action>
pankso@233 260 <action>refresh:RESULT</action>
pankso@82 261 </button>
pankso@82 262 </hbox>
pankso@82 263 </vbox>
pankso@82 264
pankso@82 265 <vbox>
pascal@178 266 <tree>
pascal@178 267 <width>620</width><height>240</height>
pascal@187 268 <variable>DEV</variable>
pascal@187 269 <label>Package name|Version|Description</label>
pankso@230 270 <input>$LIB/list undigest</input>
pascal@187 271 <action>echo "$DEV" > /tmp/tazpkgbox/pkg</action>
pankso@230 272 <action>$LIB/package_infos</action>
pascal@187 273 <action>refresh:PKG</action>
pascal@187 274 <action>refresh:GETIT</action>
pascal@187 275 <action>refresh:PKG_STATS</action>
pascal@187 276 <action>refresh:CACHE_STATS</action>
pascal@187 277 </tree>
pascal@187 278 <hbox>
pascal@187 279 <button>
pascal@187 280 <label>Setup undigest mirrors</label>
pascal@187 281 <input file icon="go-next"></input>
pascal@187 282 <action type="launch">SETUP_UNDIGEST</action>
pascal@187 283 </button>
pascal@187 284 </hbox>
pascal@187 285 <hbox>
pascal@187 286 <text>
pascal@187 287 <label>"Undigest:"</label>
pascal@187 288 </text>
pascal@187 289 <combobox>
pascal@187 290 <variable>UNDIGEST_ENTRY</variable>
pascal@213 291 '
pascal@213 292 for i in all $(ls /var/lib/tazpkg/undigest 2> /dev/null); do
pascal@213 293 TAZPKG_DIALOG="$TAZPKG_DIALOG <item>$i</item> "
pascal@213 294 done
pascal@213 295 tmp=' </combobox>
pascal@187 296 <text>
pascal@187 297 <label>"Category:"</label>
pascal@187 298 </text>
pascal@187 299 <combobox>
pascal@187 300 <variable>UNDIGEST_CAT</variable>
pascal@187 301 <item>all</item>
pascal@187 302 <item>base-system</item>
pascal@187 303 <item>x-window</item>
pascal@187 304 <item>utilities</item>
pascal@187 305 <item>network</item>
pascal@187 306 <item>graphics</item>
pascal@187 307 <item>multimedia</item>
pascal@187 308 <item>office</item>
pascal@187 309 <item>development</item>
pascal@187 310 <item>system-tools</item>
pascal@187 311 <item>security</item>
pascal@187 312 <item>games</item>
pascal@187 313 <item>misc</item>
pascal@187 314 <item>meta</item>
pascal@187 315 <item>non-free</item>
pascal@187 316 </combobox>
pascal@187 317 <button>
pascal@187 318 <label>List</label>
pascal@187 319 <input file icon="reload"></input>
pascal@187 320 <action>echo "$UNDIGEST_CAT $UNDIGEST_ENTRY" > /tmp/tazpkgbox/undigest-category</action>
pascal@187 321 <action>refresh:DEV</action>
pascal@187 322 </button>
pascal@187 323 </hbox>
pascal@187 324 </vbox>
pascal@187 325
pascal@187 326 <vbox>
pankso@227 327 <frame Files and Cache directory>
pascal@143 328 <text use-markup="true" width-chars="60" wrap="false">
pankso@227 329 <label>"
pankso@227 330 Lists, mirror URL and installed packages: <b>/var/lib/tazpkg</b>
pankso@227 331 The cache directory is used to store downloaded or repacked packages.
pankso@227 332 "</label>
pankso@86 333 </text>
pankso@82 334 <hbox>
pankso@82 335 <entry editable="false">
pankso@82 336 <input>cd /var/cache/tazpkg; echo "Packages: `ls | wc -l`, size: `du -sh $PWD`"</input>
pankso@82 337 <variable>CACHE_STATS</variable>
pankso@82 338 </entry>
pankso@82 339 <button>
pankso@82 340 <label>Clean cache</label>
pankso@86 341 <input file icon="go-next"></input>
pankso@82 342 <action>rm -rf /var/cache/tazpkg/*</action>
pankso@82 343 <action>refresh:CACHE_STATS</action>
pankso@82 344 </button>
pankso@82 345 </hbox>
pankso@82 346 </frame>
pankso@82 347 <frame Mirror URL>
pankso@82 348 <hbox>
pankso@82 349 <entry>
pankso@82 350 <input>head -n 1 /var/lib/tazpkg/mirror</input>
pankso@82 351 <variable>MIRROR</variable>
pankso@82 352 </entry>
pankso@82 353 <button>
pankso@82 354 <label>Setup</label>
pankso@82 355 <input file icon="go-next"></input>
pankso@82 356 <action>echo "$MIRROR" > /var/lib/tazpkg/mirror</action>
pankso@82 357 <action>clear:MIRROR</action>
pankso@82 358 <action>refresh:MIRROR</action>
pankso@82 359 </button>
pankso@82 360 <button>
pankso@82 361 <label>Add</label>
pankso@82 362 <input file icon="gtk-add"></input>
pankso@82 363 <action>echo "$MIRROR" >> /var/lib/tazpkg/mirror</action>
pankso@82 364 <action>clear:MIRROR</action>
pankso@82 365 <action>refresh:MIRROR</action>
pankso@82 366 </button>
pankso@82 367 </hbox>
pankso@82 368 </frame>
pascal@142 369 <hbox>
pascal@183 370 <frame Journal>
pascal@183 371 <hbox>
pascal@183 372 <button>
pascal@183 373 <label>Show journal</label>
pascal@183 374 <input file icon="find"></input>
pascal@207 375 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "$(ls -l /var/log/tazpkg.log | while read mod links user grep remain ; do echo $remain ; done) (q to quit)" -geometry 80x25+120+120 -e "cat /var/log/tazpkg.log | less"</action>
pascal@183 376 </button>
pascal@183 377 </hbox>
pascal@183 378 </frame>
pascal@142 379 <frame Configuration files>
pascal@142 380 <hbox>
pascal@91 381 <button>
pascal@139 382 <label>Repack config</label>
pascal@139 383 <input file icon="edit-redo"></input>
pascal@142 384 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Repack configs" -geometry 80x25+120+120 -e "tazpkg repack-config ; sleep 5" 2> /dev/null</action>
pascal@139 385 </button>
pascal@139 386 <button>
pascal@139 387 <label>Config Files</label>
pascal@139 388 <input file icon="tazpkg"></input>
pascal@139 389 <action type="launch">LIST_CONFIG_FILES</action>
pascal@139 390 </button>
pascal@142 391 </hbox>
pascal@142 392 </frame>
pascal@142 393 <frame Packages check>
pascal@142 394 <hbox>
pascal@139 395 <button>
pascal@91 396 <label>Quick check</label>
pascal@91 397 <input file icon="go-next"></input>
pascal@130 398 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Check packages (q to quit)" -geometry 80x25+120+120 -e "tazpkg check | less " 2> /dev/null</action>
pascal@91 399 </button>
pascal@91 400 <button>
pascal@91 401 <label>Full check</label>
pascal@91 402 <input file icon="go-next"></input>
pascal@130 403 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -T "Check packages (q to quit)" -geometry 80x25+120+120 -e "tazpkg check --full | less " 2> /dev/null</action>
pascal@91 404 </button>
pascal@142 405 </hbox>
pascal@142 406 </frame>
pascal@142 407 </hbox>
pankso@82 408 </vbox>
pankso@82 409
pankso@82 410 </notebook>
pankso@82 411
pankso@82 412 <hbox>
pascal@143 413 <text wrap="false">
pankso@230 414 <input>installed=`ls /var/lib/tazpkg/installed | wc -l`; mirrored=`cat /var/lib/tazpkg/packages.list | wc -l`; undigest=`cat /var/lib/tazpkg/undigest/*/packages.list 2> /dev/null | wc -l`; blocked=`cat /var/lib/tazpkg/blocked-packages.list 2> /dev/null | wc -l`; installable=$(($mirrored + $undigest - $installed)); [ $installable -lt 0 ] && installable=0; echo "Packages statistics: $installed installed, $blocked blocked, $installable installable, $undigest undigest, $mirrored mirrored, `cat /var/lib/tazpkg/upgradable-packages.list 2> /dev/null | wc -l` to upgrade "</input>
pankso@82 415 <variable>PKG_STATS</variable>
pankso@82 416 </text>
pankso@82 417 </hbox>
pankso@82 418
pankso@82 419 <hbox>
pascal@118 420 <button>
pankso@227 421 <label>Recharge lists</label>
pankso@227 422 <input file icon="system-software-update"></input>
pankso@227 423 <action>xterm -T "Recharge" -geometry 80x16+120+120 -e "tazpkg recharge; sleep 2" 2>/dev/null</action>
pankso@227 424 <action>refresh:DEV</action>
pankso@227 425 <action>refresh:GET</action>
pankso@227 426 <action>refresh:GETIT</action>
pankso@227 427 <action>refresh:PKG_STATS</action>
pankso@227 428 </button>
pankso@227 429 <button>
pankso@227 430 <label>Upgrade all</label>
pankso@227 431 <input file icon="system-software-update"></input>
pankso@227 432 <action>xterm -T "Package upgrade" -geometry 80x16+120+120 -e "tazpkg upgrade; sleep 2" 2>/dev/null</action>
pankso@227 433 <action>refresh:PKG</action>
pankso@227 434 <action>refresh:DEV</action>
pankso@227 435 <action>refresh:GET</action>
pankso@227 436 <action>refresh:GETIT</action>
pankso@227 437 <action>refresh:PKG_STATS</action>
pankso@227 438 <action>refresh:CACHE_STATS</action>
pankso@227 439 </button>
pankso@227 440 <button>
pascal@118 441 <label>Wok</label>
pascal@118 442 <input file icon="gtk-open"></input>
pascal@118 443 <action>firefox http://hg.slitaz.org/wok/file/</action>
pascal@118 444 </button>
pankso@82 445 <button help>
pankso@82 446 <label>Help</label>
pankso@82 447 <action type="launch">HELP</action>
pankso@82 448 </button>
pankso@82 449 <button>
pankso@82 450 <label>Exit</label>
pankso@82 451 <input file icon="exit"></input>
pankso@82 452 <action type="exit">Exit</action>
pankso@82 453 </button>
pankso@82 454 </hbox>
pankso@82 455
pankso@82 456 </vbox>
pankso@82 457
pankso@82 458 </window>
pankso@82 459 '
pascal@213 460 TAZPKG_DIALOG="$TAZPKG_DIALOG$tmp"
pankso@82 461
pankso@82 462 gtkdialog --center --program=TAZPKG_DIALOG >/dev/null
pankso@82 463
pankso@82 464 exit 0