tazpkg annotate tazpkgbox @ rev 238

tazpkgbox: fix various refresh
author Christophe Lincoln <pankso@slitaz.org>
date Thu Feb 26 14:31:12 2009 +0100 (2009-02-26)
parents c69f040f857e
children 034f41f75b96
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>
pankso@82 186 <action>refresh:PKG_STATS</action>
pankso@82 187 <action>refresh:CACHE_STATS</action>
pankso@82 188 </tree>
pankso@82 189 <hbox>
pankso@82 190 <text>
pankso@230 191 <label>"Status:"</label>
pankso@230 192 </text>
pankso@230 193 <combobox>
pankso@230 194 <variable>STATUS</variable>
pankso@230 195 <item>all</item>
pankso@230 196 <item>installed</item>
pankso@230 197 <item>installable</item>
pankso@230 198 <item>blocked</item>
pankso@230 199 </combobox>
pankso@230 200 <text>
pankso@82 201 <label>"Category:"</label>
pankso@82 202 </text>
pankso@82 203 <combobox>
pankso@230 204 <variable>CAT</variable>
pankso@82 205 <item>all</item>
pankso@82 206 <item>base-system</item>
pascal@160 207 <item>x-window</item>
pankso@82 208 <item>utilities</item>
pankso@82 209 <item>network</item>
pankso@82 210 <item>graphics</item>
pankso@82 211 <item>multimedia</item>
pankso@82 212 <item>office</item>
pankso@82 213 <item>development</item>
pankso@82 214 <item>system-tools</item>
pankso@82 215 <item>security</item>
pankso@82 216 <item>games</item>
pankso@82 217 <item>misc</item>
pankso@82 218 <item>meta</item>
pankso@82 219 <item>non-free</item>
pankso@82 220 </combobox>
pankso@82 221 <button>
pankso@82 222 <label>List</label>
pankso@82 223 <input file icon="reload"></input>
pankso@230 224 <action>echo "$CAT" > /tmp/tazpkgbox/category</action>
pankso@230 225 <action>echo "$STATUS" > /tmp/tazpkgbox/status</action>
pankso@82 226 <action>refresh:PKG</action>
pankso@82 227 </button>
pankso@82 228 </hbox>
pankso@82 229 </vbox>
pankso@230 230
pankso@238 231 <vbox>
pankso@233 232 <tree>
pankso@230 233 <width>620</width><height>120</height>
pankso@233 234 <variable>RESULT</variable>
pankso@236 235 <label>Packages Name|Version|Description / File</label>
pankso@233 236 <input icon_column="0">cat /tmp/tazpkgbox/search</input>
pankso@233 237 <action>echo "$RESULT" > /tmp/tazpkgbox/pkg</action>
pankso@230 238 <action>$LIB/package_infos</action>
pankso@238 239 <action>$LIB/search packages</action>
pankso@233 240 <action>refresh:RESULT</action>
pankso@230 241 <action>refresh:PKG</action>
pascal@130 242 <action>refresh:PKG_STATS</action>
pascal@130 243 <action>refresh:CACHE_STATS</action>
pascal@130 244 </tree>
pascal@130 245 <hbox>
pankso@230 246 <entry>
pankso@230 247 <variable>SEARCH</variable>
pankso@230 248 </entry>
pascal@130 249 <button>
pankso@233 250 <label>Packages</label>
pankso@230 251 <input file icon="system-search"></input>
pankso@233 252 <action>$LIB/search packages</action>
pankso@233 253 <action>refresh:RESULT</action>
pascal@130 254 </button>
pankso@82 255 <button>
pankso@233 256 <label>Files</label>
pankso@230 257 <input file icon="system-search"></input>
pankso@233 258 <action>$LIB/search files</action>
pankso@233 259 <action>refresh:RESULT</action>
pankso@82 260 </button>
pankso@82 261 </hbox>
pankso@82 262 </vbox>
pankso@82 263
pankso@82 264 <vbox>
pascal@178 265 <tree>
pascal@178 266 <width>620</width><height>240</height>
pascal@187 267 <variable>DEV</variable>
pascal@187 268 <label>Package name|Version|Description</label>
pankso@230 269 <input>$LIB/list undigest</input>
pascal@187 270 <action>echo "$DEV" > /tmp/tazpkgbox/pkg</action>
pankso@230 271 <action>$LIB/package_infos</action>
pascal@187 272 <action>refresh:PKG</action>
pascal@187 273 <action>refresh:PKG_STATS</action>
pascal@187 274 <action>refresh:CACHE_STATS</action>
pascal@187 275 </tree>
pascal@187 276 <hbox>
pascal@187 277 <button>
pascal@187 278 <label>Setup undigest mirrors</label>
pascal@187 279 <input file icon="go-next"></input>
pascal@187 280 <action type="launch">SETUP_UNDIGEST</action>
pascal@187 281 </button>
pascal@187 282 </hbox>
pascal@187 283 <hbox>
pascal@187 284 <text>
pascal@187 285 <label>"Undigest:"</label>
pascal@187 286 </text>
pascal@187 287 <combobox>
pascal@187 288 <variable>UNDIGEST_ENTRY</variable>
pascal@213 289 '
pascal@213 290 for i in all $(ls /var/lib/tazpkg/undigest 2> /dev/null); do
pascal@213 291 TAZPKG_DIALOG="$TAZPKG_DIALOG <item>$i</item> "
pascal@213 292 done
pascal@213 293 tmp=' </combobox>
pascal@187 294 <text>
pascal@187 295 <label>"Category:"</label>
pascal@187 296 </text>
pascal@187 297 <combobox>
pascal@187 298 <variable>UNDIGEST_CAT</variable>
pascal@187 299 <item>all</item>
pascal@187 300 <item>base-system</item>
pascal@187 301 <item>x-window</item>
pascal@187 302 <item>utilities</item>
pascal@187 303 <item>network</item>
pascal@187 304 <item>graphics</item>
pascal@187 305 <item>multimedia</item>
pascal@187 306 <item>office</item>
pascal@187 307 <item>development</item>
pascal@187 308 <item>system-tools</item>
pascal@187 309 <item>security</item>
pascal@187 310 <item>games</item>
pascal@187 311 <item>misc</item>
pascal@187 312 <item>meta</item>
pascal@187 313 <item>non-free</item>
pascal@187 314 </combobox>
pascal@187 315 <button>
pascal@187 316 <label>List</label>
pascal@187 317 <input file icon="reload"></input>
pascal@187 318 <action>echo "$UNDIGEST_CAT $UNDIGEST_ENTRY" > /tmp/tazpkgbox/undigest-category</action>
pascal@187 319 <action>refresh:DEV</action>
pascal@187 320 </button>
pascal@187 321 </hbox>
pascal@187 322 </vbox>
pascal@187 323
pascal@187 324 <vbox>
pankso@227 325 <frame Files and Cache directory>
pascal@143 326 <text use-markup="true" width-chars="60" wrap="false">
pankso@227 327 <label>"
pankso@227 328 Lists, mirror URL and installed packages: <b>/var/lib/tazpkg</b>
pankso@227 329 The cache directory is used to store downloaded or repacked packages.
pankso@227 330 "</label>
pankso@86 331 </text>
pankso@82 332 <hbox>
pankso@82 333 <entry editable="false">
pankso@82 334 <input>cd /var/cache/tazpkg; echo "Packages: `ls | wc -l`, size: `du -sh $PWD`"</input>
pankso@82 335 <variable>CACHE_STATS</variable>
pankso@82 336 </entry>
pankso@82 337 <button>
pankso@82 338 <label>Clean cache</label>
pankso@86 339 <input file icon="go-next"></input>
pankso@82 340 <action>rm -rf /var/cache/tazpkg/*</action>
pankso@82 341 <action>refresh:CACHE_STATS</action>
pankso@82 342 </button>
pankso@82 343 </hbox>
pankso@82 344 </frame>
pankso@82 345 <frame Mirror URL>
pankso@82 346 <hbox>
pankso@82 347 <entry>
pankso@82 348 <input>head -n 1 /var/lib/tazpkg/mirror</input>
pankso@82 349 <variable>MIRROR</variable>
pankso@82 350 </entry>
pankso@82 351 <button>
pankso@82 352 <label>Setup</label>
pankso@82 353 <input file icon="go-next"></input>
pankso@82 354 <action>echo "$MIRROR" > /var/lib/tazpkg/mirror</action>
pankso@82 355 <action>clear:MIRROR</action>
pankso@82 356 <action>refresh:MIRROR</action>
pankso@82 357 </button>
pankso@82 358 <button>
pankso@82 359 <label>Add</label>
pankso@82 360 <input file icon="gtk-add"></input>
pankso@82 361 <action>echo "$MIRROR" >> /var/lib/tazpkg/mirror</action>
pankso@82 362 <action>clear:MIRROR</action>
pankso@82 363 <action>refresh:MIRROR</action>
pankso@82 364 </button>
pankso@82 365 </hbox>
pankso@82 366 </frame>
pascal@142 367 <hbox>
pascal@183 368 <frame Journal>
pascal@183 369 <hbox>
pascal@183 370 <button>
pascal@183 371 <label>Show journal</label>
pascal@183 372 <input file icon="find"></input>
pascal@207 373 <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 374 </button>
pascal@183 375 </hbox>
pascal@183 376 </frame>
pascal@142 377 <frame Configuration files>
pascal@142 378 <hbox>
pascal@91 379 <button>
pascal@139 380 <label>Repack config</label>
pascal@139 381 <input file icon="edit-redo"></input>
pascal@142 382 <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 383 </button>
pascal@139 384 <button>
pascal@139 385 <label>Config Files</label>
pascal@139 386 <input file icon="tazpkg"></input>
pascal@139 387 <action type="launch">LIST_CONFIG_FILES</action>
pascal@139 388 </button>
pascal@142 389 </hbox>
pascal@142 390 </frame>
pascal@142 391 <frame Packages check>
pascal@142 392 <hbox>
pascal@139 393 <button>
pascal@91 394 <label>Quick check</label>
pascal@91 395 <input file icon="go-next"></input>
pascal@130 396 <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 397 </button>
pascal@91 398 <button>
pascal@91 399 <label>Full check</label>
pascal@91 400 <input file icon="go-next"></input>
pascal@130 401 <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 402 </button>
pascal@142 403 </hbox>
pascal@142 404 </frame>
pascal@142 405 </hbox>
pankso@82 406 </vbox>
pankso@82 407
pankso@82 408 </notebook>
pankso@82 409
pankso@82 410 <hbox>
pascal@143 411 <text wrap="false">
pankso@230 412 <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 413 <variable>PKG_STATS</variable>
pankso@82 414 </text>
pankso@82 415 </hbox>
pankso@82 416
pankso@82 417 <hbox>
pascal@118 418 <button>
pankso@227 419 <label>Recharge lists</label>
pankso@227 420 <input file icon="system-software-update"></input>
pankso@227 421 <action>xterm -T "Recharge" -geometry 80x16+120+120 -e "tazpkg recharge; sleep 2" 2>/dev/null</action>
pankso@227 422 <action>refresh:DEV</action>
pankso@238 423 <action>refresh:PKG</action>
pankso@227 424 <action>refresh:PKG_STATS</action>
pankso@238 425 <action>refresh:CACHE_STATS</action>
pankso@227 426 </button>
pankso@227 427 <button>
pankso@227 428 <label>Upgrade all</label>
pankso@227 429 <input file icon="system-software-update"></input>
pankso@227 430 <action>xterm -T "Package upgrade" -geometry 80x16+120+120 -e "tazpkg upgrade; sleep 2" 2>/dev/null</action>
pankso@227 431 <action>refresh:PKG</action>
pankso@227 432 <action>refresh:DEV</action>
pankso@227 433 <action>refresh:PKG_STATS</action>
pankso@227 434 <action>refresh:CACHE_STATS</action>
pankso@227 435 </button>
pankso@227 436 <button>
pascal@118 437 <label>Wok</label>
pascal@118 438 <input file icon="gtk-open"></input>
pascal@118 439 <action>firefox http://hg.slitaz.org/wok/file/</action>
pascal@118 440 </button>
pankso@82 441 <button help>
pankso@82 442 <label>Help</label>
pankso@82 443 <action type="launch">HELP</action>
pankso@82 444 </button>
pankso@82 445 <button>
pankso@82 446 <label>Exit</label>
pankso@82 447 <input file icon="exit"></input>
pankso@82 448 <action type="exit">Exit</action>
pankso@82 449 </button>
pankso@82 450 </hbox>
pankso@82 451
pankso@82 452 </vbox>
pankso@82 453
pankso@82 454 </window>
pankso@82 455 '
pascal@213 456 TAZPKG_DIALOG="$TAZPKG_DIALOG$tmp"
pankso@82 457
pankso@82 458 gtkdialog --center --program=TAZPKG_DIALOG >/dev/null
pankso@82 459
pankso@82 460 exit 0