tazpkg annotate tazpkg-box @ rev 734
tazpkg-convert: add tinycore support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Dec 29 11:06:28 2014 +0100 (2014-12-29) |
parents | 192b971ccc93 |
children | 0fc40a0f873f |
rev | line source |
---|---|
pankso@541 | 1 #!/bin/sh |
pankso@541 | 2 # |
al@707 | 3 # Small GTK boxes to TazPkg for deep desktop integration. PCManFM 0.5.x has a |
al@633 | 4 # patch to extract a TazPkg file but not Thunar and other FM. TazPkgBox tries |
paul@579 | 5 # to follow freedesktop standards. |
pankso@541 | 6 # |
pankso@649 | 7 # Copyright (C) 2011-2014 SliTaz GNU/Linux - GNU GPL v2 |
pankso@541 | 8 # |
al@633 | 9 # Authors: Christophe Lincoln <pankso@slitaz.org> |
pankso@541 | 10 # |
pankso@541 | 11 |
al@707 | 12 |
al@603 | 13 # Internationalization. |
al@707 | 14 |
al@707 | 15 . /lib/libtaz.sh |
al@603 | 16 TEXTDOMAIN='tazpkg' |
al@603 | 17 export TEXTDOMAIN |
al@603 | 18 |
al@707 | 19 title="$(_ 'TazPkg')" |
al@707 | 20 text="$(_ 'SliTaz Package Action')" |
pankso@555 | 21 icon="/usr/share/pixmaps/tazpkg.png" |
al@633 | 22 opts="--image=tazpkg --image-on-top --center --on-top" |
pankso@589 | 23 |
al@707 | 24 |
pankso@649 | 25 usage() { |
pankso@649 | 26 cat << EOT |
al@707 | 27 $(_ 'Usage:') $(basename $0) [actions|URL] [$(_ 'package')] |
pankso@649 | 28 EOT |
pankso@649 | 29 } |
pankso@649 | 30 |
al@707 | 31 |
pankso@589 | 32 # Nice GTK output for install and extract. |
al@707 | 33 |
pankso@589 | 34 output() { |
pankso@649 | 35 yad --text-info $opts --title="$title" --text="<b>$text</b>" \ |
pankso@649 | 36 --height=260 --width=520 --window-icon=$icon \ |
pankso@589 | 37 --tail --margins=4 --button="gtk-close:0" |
pankso@589 | 38 } |
pankso@555 | 39 |
al@707 | 40 |
pankso@649 | 41 pkginfo() { |
pankso@649 | 42 tmp=/tmp/$(basename $0)/$$ |
al@707 | 43 mkdir -p $tmp; cd $tmp |
pankso@649 | 44 { cpio --quiet -i receipt > /dev/null 2>&1; } < ${dir}/$pkg |
pankso@649 | 45 . $tmp/receipt |
pankso@649 | 46 #rm -rf /tmp/$(basename $0) |
pankso@649 | 47 size=$(du -sh ${dir}/$pkg | awk '{print $1}') |
al@707 | 48 echo -e "$(_ 'Package')\n$PACKAGE |
al@707 | 49 $(_ 'Version')\n$VERSION |
al@707 | 50 $(_ 'Short desc')\n$SHORT_DESC |
al@707 | 51 $(_ 'Unpacked size')\n$UNPACKED_SIZE |
al@707 | 52 $(_ 'Depends')\n$DEPENDS" |
pankso@649 | 53 } |
pankso@649 | 54 |
al@707 | 55 |
pankso@541 | 56 # Main GUI box function with pure Yad spec |
al@707 | 57 |
pankso@541 | 58 actions_main() { |
al@603 | 59 pkgname=${pkg%.tazpkg} |
pankso@649 | 60 pkginfo | yad $opts --title="$title" \ |
pankso@649 | 61 --list --no-headers --no-click \ |
pankso@649 | 62 --height=260 --width=520 \ |
pankso@649 | 63 --text="<b>$text</b>" \ |
al@633 | 64 --window-icon=$icon \ |
al@707 | 65 --column "" --column "" \ |
al@707 | 66 --button="$(_ 'Install'):3" \ |
al@707 | 67 --button="$(_ 'Extract'):2" \ |
al@633 | 68 --button="gtk-cancel:1" |
pankso@541 | 69 } |
pankso@541 | 70 |
al@707 | 71 |
pankso@541 | 72 # Actions user can do when clicking on a package. |
al@707 | 73 |
pankso@541 | 74 actions() { |
pankso@541 | 75 # Store box results |
pankso@541 | 76 main=$(actions_main) |
pankso@541 | 77 ret=$? |
pankso@541 | 78 # Deal with --button values |
pankso@541 | 79 case $ret in |
pankso@541 | 80 1) exit 0 ;; |
al@603 | 81 2) tazpkg extract $pkg . --output="raw" | output ;; |
al@603 | 82 3) tazpkg -i $pkg . --forced --output="raw" | output ;; |
pankso@541 | 83 esac |
pankso@541 | 84 } |
pankso@541 | 85 |
al@707 | 86 |
al@633 | 87 # TazPkg URL Handler. |
al@707 | 88 |
pankso@589 | 89 dl_inst() { |
pankso@589 | 90 pkg=$(basename $url) |
al@707 | 91 _ 'Downloading: %s' $pkg; newline |
al@707 | 92 cd /tmp; wget $url 2>&1 |
pankso@595 | 93 tazpkg -i $pkg --forced --output="raw" 2>&1 |
pankso@589 | 94 rm -f $pkg |
pankso@589 | 95 } |
pankso@589 | 96 |
al@707 | 97 |
al@707 | 98 |
pankso@541 | 99 # |
pankso@541 | 100 # Script commands |
pankso@541 | 101 # |
pankso@541 | 102 |
pankso@541 | 103 case "$1" in |
pankso@555 | 104 usage|help|-u|-h) |
pankso@649 | 105 usage ;; |
pankso@589 | 106 tazpkg://*) |
al@633 | 107 # TazPkg URL's handler. |
pankso@589 | 108 url="http://${1#tazpkg://}" |
pankso@589 | 109 dl_inst | output ;; |
pankso@541 | 110 actions) |
pankso@555 | 111 pkg=$(basename $2) |
pankso@649 | 112 dir=$(dirname $2) |
pankso@649 | 113 cd $dir |
pankso@541 | 114 actions ;; |
pankso@541 | 115 esac |
pankso@541 | 116 |
pankso@541 | 117 exit 0 |