tazpkg annotate tazpkgbox @ rev 236

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