tazpkg rev 812

tazpkg-box, tazpkg: allow to get and install packages using folder with spaces in the path.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Jun 04 17:15:40 2015 +0300 (2015-06-04)
parents a73c9918a5de
children 33d93f743150
files applications/tazpkg-box.desktop po/fr.po po/pt_BR.po po/zh_CN.po po/zh_TW.po tazpkg tazpkg-box
line diff
     1.1 --- a/applications/tazpkg-box.desktop	Thu Jun 04 00:15:13 2015 +0300
     1.2 +++ b/applications/tazpkg-box.desktop	Thu Jun 04 17:15:40 2015 +0300
     1.3 @@ -5,7 +5,7 @@
     1.4  Name[pt]=Gerenciador de Pacotes TazPkg
     1.5  Name[pt_BR]=Gerenciador de Pacotes TazPkg
     1.6  Name[ru]=Менеджер пакетов TazPkg
     1.7 -Exec=tazbox su tazpkg-box actions ""%f""
     1.8 +Exec=tazbox su tazpkg-box actions \"%f\"
     1.9  Icon=tazpkg
    1.10  NoDisplay=True
    1.11  MimeType=application/x-tazpkg;
     2.1 --- a/po/fr.po	Thu Jun 04 00:15:13 2015 +0300
     2.2 +++ b/po/fr.po	Thu Jun 04 17:15:40 2015 +0300
     2.3 @@ -1164,7 +1164,7 @@
     2.4  
     2.5  #: tazpkg-box:19
     2.6  msgid "TazPkg"
     2.7 -msgstr ""
     2.8 +msgstr "TazPkg"
     2.9  
    2.10  #: tazpkg-box:20
    2.11  msgid "SliTaz Package Action"
    2.12 @@ -1939,9 +1939,6 @@
    2.13  #~ msgid "Depends:"
    2.14  #~ msgstr "Dépendances :"
    2.15  
    2.16 -#~ msgid "TazPkg"
    2.17 -#~ msgstr "TazPkg"
    2.18 -
    2.19  #~ msgid "$PACKAGE_FILE does not look like an Archlinux/Alpine package!"
    2.20  #~ msgstr "$PACKAGE_FILE ne semble pas être un paquet Archlinux ou Alpine !"
    2.21  
     3.1 --- a/po/pt_BR.po	Thu Jun 04 00:15:13 2015 +0300
     3.2 +++ b/po/pt_BR.po	Thu Jun 04 17:15:40 2015 +0300
     3.3 @@ -1166,9 +1166,8 @@
     3.4  msgstr "Formato não suportado"
     3.5  
     3.6  #: tazpkg-box:19
     3.7 -#, fuzzy
     3.8  msgid "TazPkg"
     3.9 -msgstr "TazPkg SHell"
    3.10 +msgstr "TazPkg"
    3.11  
    3.12  #: tazpkg-box:20
    3.13  msgid "SliTaz Package Action"
    3.14 @@ -1974,9 +1973,6 @@
    3.15  #~ msgid "Depends:"
    3.16  #~ msgstr "Dependências:"
    3.17  
    3.18 -#~ msgid "TazPkg"
    3.19 -#~ msgstr "TazPkg"
    3.20 -
    3.21  #~ msgid "$PACKAGE_FILE does not look like an Archlinux/Alpine package!"
    3.22  #~ msgstr "$PACKAGE_FILE não se parece com um pacote Archlinux/Alpine!"
    3.23  
     4.1 --- a/po/zh_CN.po	Thu Jun 04 00:15:13 2015 +0300
     4.2 +++ b/po/zh_CN.po	Thu Jun 04 17:15:40 2015 +0300
     4.3 @@ -1145,9 +1145,8 @@
     4.4  msgstr "不支持的格式"
     4.5  
     4.6  #: tazpkg-box:19
     4.7 -#, fuzzy
     4.8  msgid "TazPkg"
     4.9 -msgstr "TazPkg SHell"
    4.10 +msgstr "TazPkg"
    4.11  
    4.12  #: tazpkg-box:20
    4.13  msgid "SliTaz Package Action"
    4.14 @@ -1948,9 +1947,6 @@
    4.15  #~ msgid "Depends:"
    4.16  #~ msgstr "依赖:"
    4.17  
    4.18 -#~ msgid "TazPkg"
    4.19 -#~ msgstr "TazPkg"
    4.20 -
    4.21  #~ msgid "$PACKAGE_FILE does not look like an Archlinux/Alpine package!"
    4.22  #~ msgstr "$PACKAGE_FILE 并非 Archlinux/Alpine 包!"
    4.23  
     5.1 --- a/po/zh_TW.po	Thu Jun 04 00:15:13 2015 +0300
     5.2 +++ b/po/zh_TW.po	Thu Jun 04 17:15:40 2015 +0300
     5.3 @@ -1148,9 +1148,8 @@
     5.4  msgstr "不支持的格式"
     5.5  
     5.6  #: tazpkg-box:19
     5.7 -#, fuzzy
     5.8  msgid "TazPkg"
     5.9 -msgstr "TazPkg SHell"
    5.10 +msgstr "TazPkg"
    5.11  
    5.12  #: tazpkg-box:20
    5.13  msgid "SliTaz Package Action"
    5.14 @@ -1950,9 +1949,6 @@
    5.15  #~ msgid "Depends:"
    5.16  #~ msgstr "依賴:"
    5.17  
    5.18 -#~ msgid "TazPkg"
    5.19 -#~ msgstr "TazPkg"
    5.20 -
    5.21  #~ msgid "$PACKAGE_FILE does not look like an Archlinux/Alpine package!"
    5.22  #~ msgstr "$PACKAGE_FILE 並非 Archlinux/Alpine 包!"
    5.23  
     6.1 --- a/tazpkg	Thu Jun 04 00:15:13 2015 +0300
     6.2 +++ b/tazpkg	Thu Jun 04 17:15:40 2015 +0300
     6.3 @@ -80,11 +80,11 @@
     6.4  
     6.5  COMMAND="$1"
     6.6  PACKAGE="${2%/}"
     6.7 -PACKAGE_DIR="$(cd $(dirname $PACKAGE 2>/dev/null) 2>/dev/null; pwd)"
     6.8 +PACKAGE_DIR="$(cd $(dirname "$PACKAGE" 2>/dev/null) 2>/dev/null; pwd)"
     6.9  [ -n "$PACKAGE" ] && PACKAGE_FILE="$PACKAGE_DIR/${PACKAGE##*/}"
    6.10  if [ -f "$PACKAGE" ]; then
    6.11  	# Set pkg basename for install, extract
    6.12 -	PACKAGE="$(basename $PACKAGE .tazpkg 2>/dev/null)"
    6.13 +	PACKAGE="$(basename "$PACKAGE" .tazpkg 2>/dev/null)"
    6.14  else
    6.15  	# Pkg name for remove, search and all other cmds
    6.16  	PACKAGE="${PACKAGE%.tazpkg}"
    6.17 @@ -108,7 +108,6 @@
    6.18  
    6.19  
    6.20  
    6.21 -
    6.22  ####################
    6.23  # Script functions #
    6.24  ####################
    6.25 @@ -655,20 +654,20 @@
    6.26  	mkdir -p $TMP_DIR
    6.27  	[ -n "$INSTALL_LIST" ] && echo "$PACKAGE_FILE" >> $ROOT$PKGS_DB/$INSTALL_LIST-processed
    6.28  
    6.29 -	title 'Installation of package "%s"' $PACKAGE
    6.30 -
    6.31 -	print_short_description $PACKAGE
    6.32 +	title 'Installation of package "%s"' "$PACKAGE"
    6.33 +
    6.34 +	print_short_description "$PACKAGE"
    6.35  	separator '-'
    6.36  
    6.37  	action 'Copying package...'
    6.38 -	cp $PACKAGE_FILE $TMP_DIR
    6.39 +	cp "$PACKAGE_FILE" "$TMP_DIR"
    6.40  	status
    6.41  
    6.42 -	cd $TMP_DIR
    6.43 +	cd "$TMP_DIR"
    6.44  	extract_package
    6.45 -	SELF_INSTALL=0
    6.46 -	EXTRAVERSION=""
    6.47 -	CONFIG_FILES=""
    6.48 +	SELF_INSTALL='0'
    6.49 +	EXTRAVERSION=''
    6.50 +	CONFIG_FILES=''
    6.51  
    6.52  	# Include temporary receipt to get the right variables.
    6.53  	. $PWD/receipt
    6.54 @@ -2728,30 +2727,31 @@
    6.55  		look_for_priority
    6.56  
    6.57  		CURRENT_DIR="$PWD"
    6.58 -		cd $CACHE_DIR
    6.59 +		cd "$CACHE_DIR"
    6.60  		if check_for_package_in_list check ; then
    6.61 -			cd $CACHE_DIR
    6.62 +			cd "$CACHE_DIR"
    6.63  			if [ -f "$PACKAGE.tazpkg" ]; then
    6.64 -				_ 'Package "%s" already in the cache' $PACKAGE
    6.65 +				_ 'Package "%s" already in the cache' "$PACKAGE"
    6.66  				# Check package download was finished
    6.67 -				tail -c 2k $PACKAGE.tazpkg | fgrep -q 00000000TRAILER || {
    6.68 -					_ 'Continuing package "%s" download' $PACKAGE
    6.69 -					download $PACKAGE.tazpkg
    6.70 +				tail -c 2k "$PACKAGE.tazpkg" | fgrep -q '00000000TRAILER' || {
    6.71 +					_ 'Continuing package "%s" download' "$PACKAGE"
    6.72 +					download "$PACKAGE.tazpkg"
    6.73  				}
    6.74 -				if [ "$($CHECKSUM $PACKAGE.tazpkg)" != "$(fgrep "  $PACKAGE.tazpkg" $rep/packages.$SUM)" ]; then
    6.75 -					rm -f $PACKAGE.tazpkg
    6.76 -					download $PACKAGE.tazpkg
    6.77 +				if [ "$($CHECKSUM $PACKAGE.tazpkg)" != \
    6.78 +					"$(fgrep "  $PACKAGE.tazpkg" "$rep/packages.$SUM")" ]; then
    6.79 +					rm -f "$PACKAGE.tazpkg"
    6.80 +					download "$PACKAGE.tazpkg"
    6.81  				fi
    6.82  			else
    6.83 -				download $PACKAGE.tazpkg
    6.84 +				download "$PACKAGE.tazpkg"
    6.85  			fi
    6.86  			PACKAGE_FILE="$CACHE_DIR/$PACKAGE.tazpkg"
    6.87 -		elif download_get_script $PACKAGE /tmp/$PACKAGE.$$ ; then
    6.88 -			install_package_from_get_script /tmp/$PACKAGE.$$ "$ROOT" --get
    6.89 -			PACKAGE_FILE=$(ls $PWD/$PACKAGE-*.tazpkg)
    6.90 +		elif download_get_script "$PACKAGE" "/tmp/$PACKAGE.$$" ; then
    6.91 +			install_package_from_get_script "/tmp/$PACKAGE.$$" "$ROOT" --get
    6.92 +			PACKAGE_FILE="$(ls "$PWD/$PACKAGE-*.tazpkg")"
    6.93  		fi
    6.94  		[ "$PWD" != "$CURRENT_DIR" ] &&
    6.95 -			cp -a $PACKAGE_FILE $CURRENT_DIR
    6.96 +			cp -a "$PACKAGE_FILE" "$CURRENT_DIR"
    6.97  		;;
    6.98  
    6.99  
     7.1 --- a/tazpkg-box	Thu Jun 04 00:15:13 2015 +0300
     7.2 +++ b/tazpkg-box	Thu Jun 04 17:15:40 2015 +0300
     7.3 @@ -2,24 +2,21 @@
     7.4  #
     7.5  # Small GTK boxes to TazPkg for deep desktop integration. PCManFM 0.5.x has a
     7.6  # patch to extract a TazPkg file but not Thunar and other FM. TazPkgBox tries
     7.7 -# to follow freedesktop standards.
     7.8 +# to follow Freedesktop standards.
     7.9  #
    7.10  # Copyright (C) 2011-2015 SliTaz GNU/Linux - GNU GPL v2
    7.11  #
    7.12  # Authors: Christophe Lincoln <pankso@slitaz.org>
    7.13  #
    7.14  
    7.15 -
    7.16  # Internationalization.
    7.17  
    7.18  . /lib/libtaz.sh
    7.19 -TEXTDOMAIN='tazpkg'
    7.20 -export TEXTDOMAIN
    7.21 +export TEXTDOMAIN='tazpkg'
    7.22  
    7.23 -title="$(_ 'TazPkg')"
    7.24 -text="$(_ 'SliTaz Package Action')"
    7.25 -icon="/usr/share/pixmaps/tazpkg.png"
    7.26 -opts="--image=tazpkg --image-on-top --center --on-top"
    7.27 +text="<b>$(_ 'SliTaz Package Action')</b>"
    7.28 +opts="--window-icon=tazpkg --image=tazpkg --image-on-top --center --on-top \
    7.29 +--height=260 --width=520 --title=TazPkg"
    7.30  
    7.31  
    7.32  usage() {
    7.33 @@ -32,19 +29,17 @@
    7.34  # Nice GTK output for install and extract.
    7.35  
    7.36  output() {
    7.37 -	yad --text-info $opts --title="$title" --text="<b>$text</b>" \
    7.38 -		--height=260 --width=520  --window-icon=$icon \
    7.39 -		--tail --margins=4 --button="gtk-close:0"
    7.40 +	yad --text-info $opts --tail --margins='4' --text="$text" \
    7.41 +		--button='gtk-close:0'
    7.42  }
    7.43  
    7.44  
    7.45  pkginfo() {
    7.46 -	tmp=/tmp/$(basename $0)/$$
    7.47 -	mkdir -p $tmp; cd $tmp
    7.48 -	{ cpio --quiet -i receipt > /dev/null 2>&1; } < ${dir}/$pkg
    7.49 -	. $tmp/receipt
    7.50 -	#rm -rf /tmp/$(basename $0)
    7.51 -	size=$(du -sh ${dir}/$pkg | awk '{print $1}')
    7.52 +	tmp="$(mktemp -d)"; cd "$tmp"
    7.53 +	{ cpio --quiet -i receipt >/dev/null 2>&1; } < "$dir/$pkg"
    7.54 +	. "$tmp/receipt"
    7.55 +	rm -rf "$tmp"
    7.56 +	size=$(du -sh "$dir/$pkg" | awk '{print $1}')
    7.57  	echo -e "$(_ 'Package')\n$PACKAGE
    7.58  $(_ 'Version')\n$VERSION
    7.59  $(_ 'Short desc')\n$SHORT_DESC
    7.60 @@ -56,16 +51,12 @@
    7.61  # Main GUI box function with pure Yad spec
    7.62  
    7.63  actions_main() {
    7.64 -	pkgname=${pkg%.tazpkg}
    7.65 -	pkginfo | yad $opts --title="$title" \
    7.66 -		--list --no-headers --no-click  \
    7.67 -		--height=260 --width=520 \
    7.68 -		--text="<b>$text</b>" \
    7.69 -		--window-icon=$icon \
    7.70 -		--column "" --column "" \
    7.71 +	pkgname="${pkg%.tazpkg}"
    7.72 +	pkginfo | yad $opts --list --no-headers --no-click --text="$text" \
    7.73 +		--column '' --column '' \
    7.74  		--button="$(_ 'Install'):3" \
    7.75  		--button="$(_ 'Extract'):2" \
    7.76 -		--button="gtk-cancel:1"
    7.77 +		--button='gtk-cancel:1'
    7.78  }
    7.79  
    7.80  
    7.81 @@ -73,13 +64,12 @@
    7.82  
    7.83  actions() {
    7.84  	# Store box results
    7.85 -	main=$(actions_main)
    7.86 -	ret=$?
    7.87 +	main="$(actions_main)"
    7.88  	# Deal with --button values
    7.89 -	case $ret in
    7.90 +	case "$?" in
    7.91  		1) exit 0 ;;
    7.92 -		2) tazpkg extract $pkg . --output="raw" | output ;;
    7.93 -		3) tazpkg -i $pkg . --forced --output="raw" | output ;;
    7.94 +		2) tazpkg extract "$pkg" . --output='raw' | output ;;
    7.95 +		3) tazpkg -i "$pkg" . --forced --output='raw' | output ;;
    7.96  	esac
    7.97  }
    7.98  
    7.99 @@ -87,11 +77,11 @@
   7.100  # TazPkg URL Handler.
   7.101  
   7.102  dl_inst() {
   7.103 -	pkg=$(basename $url) 
   7.104 -	_ 'Downloading: %s' $pkg; newline
   7.105 -	cd /tmp; wget $url 2>&1
   7.106 -	tazpkg -i $pkg --forced --output="raw" 2>&1
   7.107 -	rm -f $pkg
   7.108 +	pkg="$(basename $url)"
   7.109 +	_ 'Downloading: %s' "$pkg"; newline
   7.110 +	cd /tmp; wget "$url" 2>&1
   7.111 +	tazpkg -i "$pkg" --forced --output='raw' 2>&1
   7.112 +	rm -f "$pkg"
   7.113  }
   7.114  
   7.115  
   7.116 @@ -108,9 +98,9 @@
   7.117  		url="http://${1#tazpkg://}"
   7.118  		dl_inst | output ;;
   7.119  	actions)
   7.120 -		pkg=$(basename $2)
   7.121 -		dir=$(dirname $2)
   7.122 -		cd $dir
   7.123 +		pkg="$(basename "$(realpath "${2%% }")")"		# fight against strange space at the end
   7.124 +		dir="$(dirname "$(realpath "${2%% }")")"
   7.125 +		cd "$dir"
   7.126  		actions ;;
   7.127  esac
   7.128