tazpkg diff modules/upgrade @ rev 840

Add a bunch of modules with new-style support of 'root' (not all commands are modules yet); strip and compress resources.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Aug 28 16:10:34 2015 +0300 (2015-08-28)
parents 4fbdffec7f48
children 0560ba4306a1
line diff
     1.1 --- a/modules/upgrade	Sat Aug 15 17:41:08 2015 +0300
     1.2 +++ b/modules/upgrade	Fri Aug 28 16:10:34 2015 +0300
     1.3 @@ -4,8 +4,6 @@
     1.4  # Check for upgrades and make system up-to-date
     1.5  
     1.6  
     1.7 -# Options:
     1.8 -
     1.9  # Environment variables:
    1.10  #   root							Root of the packages DB
    1.11  #   check							Only check for upgrades
    1.12 @@ -15,27 +13,8 @@
    1.13  # Connect function libraries
    1.14  . /lib/libtaz.sh
    1.15  
    1.16 -
    1.17 -
    1.18 -
    1.19  # Get TazPkg working environment
    1.20 -# ------------------------------
    1.21 -
    1.22 -[ ! -d "$root/etc/slitaz" ] && mkdir -p "$root/etc/slitaz"
    1.23 -[ ! -e "$root/etc/slitaz/slitaz.conf" ] && cp /etc/slitaz/slitaz.conf "$root/etc/slitaz"
    1.24 -[ ! -e "$root/etc/slitaz/tazpkg.conf" ] && cp /etc/slitaz/tazpkg.conf "$root/etc/slitaz"
    1.25 -[ ! -e "$root/etc/slitaz-release" ] && echo 'cooking' > "$root/etc/slitaz-release"
    1.26 -
    1.27 -# Read configuration
    1.28 -if [ -n "$root" ]; then
    1.29 -	# Patch external conf files to correctly handle --root value
    1.30 -	slitaz_conf=$(mktemp); cp "$root/etc/slitaz/slitaz.conf" $slitaz_conf
    1.31 -	tazpkg_conf=$(mktemp); cp "$root/etc/slitaz/tazpkg.conf" $tazpkg_conf
    1.32 -	sed -i "s| /| $root/|g; s|\"/|\"$root/|g" $slitaz_conf $tazpkg_conf
    1.33 -	. $slitaz_conf; . $tazpkg_conf; rm $slitaz_conf $tazpkg_conf
    1.34 -else
    1.35 -	. /etc/slitaz/slitaz.conf; . /etc/slitaz/tazpkg.conf
    1.36 -fi
    1.37 +. @@MODULES@@/getenv
    1.38  
    1.39  
    1.40  
    1.41 @@ -48,10 +27,10 @@
    1.42  # by 'main'. Sort order: priority
    1.43  
    1.44  look_for_priority() {
    1.45 -	[ -s "$PKGS_DB/priority" ] && priority=$(cat $PKGS_DB/priority)
    1.46 +	[ -s "$PKGS_DB/priority" ] && priority=$(cat "$PKGS_DB/priority")
    1.47  
    1.48 -	for rep in main $(ls $PKGS_DB/undigest 2>/dev/null); do
    1.49 -		if [ ! -s "$PKGS_DB/priority" ] || ! grep -q ^$rep$ $PKGS_DB/priority; then
    1.50 +	for rep in main $(ls "$PKGS_DB/undigest" 2>/dev/null); do
    1.51 +		if [ ! -s "$PKGS_DB/priority" ] || ! grep -q "^$rep$" "$PKGS_DB/priority"; then
    1.52  			priority=$(echo -e "$priority\n$rep")
    1.53  		fi
    1.54  	done
    1.55 @@ -59,8 +38,8 @@
    1.56  	priority=$(echo "$priority" | sed '/^$/d' | \
    1.57  		while read line; do
    1.58  		case $line in
    1.59 -			(main) echo $PKGS_DB;;
    1.60 -			(*)    echo $PKGS_DB/undigest/$line;;
    1.61 +			(main) echo "$PKGS_DB";;
    1.62 +			(*)    echo "$PKGS_DB/undigest/$line";;
    1.63  		esac
    1.64  	done)
    1.65  }
    1.66 @@ -70,10 +49,10 @@
    1.67  
    1.68  time="$(date +%s)"
    1.69  
    1.70 -# Recharge packages databases (if necessary) (respects "root" value)
    1.71 +# Recharge packages databases (if necessary) (respects already exported "root" value)
    1.72  tazpkg recharge >&2
    1.73  
    1.74 -echo -n > $UP_LIST
    1.75 +echo -n > "$UP_LIST"
    1.76  blocked_counter=$(mktemp)
    1.77  tmp_up_list=$(mktemp)
    1.78  
    1.79 @@ -88,15 +67,15 @@
    1.80  
    1.81  	[ ! -f "$repo/packages.info" ] && continue
    1.82  	{
    1.83 -		cat $BLOCKED | awk '{printf "%s\t%s\n", $1, "b"}';
    1.84 -		cat $PKGS_DB/installed.info | awk -F$'\t' '{printf "%s\t%s\t%s\t%s\n", $1, "i", $2, $9}';
    1.85 -		cat $repo/packages.info | awk -F$'\t' '{printf "%s\t%s\t%s\t%s\n", $1, "p", $2, $9}'
    1.86 +		cat "$BLOCKED" | awk '{printf "%s\t%s\n", $1, "b"}'
    1.87 +		cat "$PKGS_DB/installed.info" | awk -F$'\t' '{printf "%s\t%s\t%s\t%s\n", $1, "i", $2, $9}'
    1.88 +		cat "$repo/packages.info" | awk -F$'\t' '{printf "%s\t%s\t%s\t%s\n", $1, "p", $2, $9}'
    1.89  	} | sort -t$'\t' -k1,1 | awk -F$'\t' \
    1.90  	-vnewbuild="$(_ 'New build')" -vcolornewbuild="$(emsg '<c 34>')" \
    1.91  	-vnewver='→ ' -vcolornewver="$(emsg '<c 32>')" \
    1.92  	-vblocked=" ($(_ 'Blocked'))" -vcolorblocked="$(emsg '<c 31>')" \
    1.93  	-vcolor0="$(emsg '</c>')" \
    1.94 -	-vreponum=$repo_number -vreponame=$repo_name \
    1.95 +	-vreponum="$repo_number" -vreponame="$repo_name" \
    1.96  	-vuplist="$UP_LIST" -vblocked_counter="$blocked_counter" \
    1.97  '{
    1.98  
    1.99 @@ -105,14 +84,20 @@
   1.100  			bb = (b=="") ? "i" : "b"
   1.101  			if ("" vi != vp) { # important: compare as strings
   1.102  				startc = (b=="") ? colornewver : colorblocked;
   1.103 -				printf "%s\t%s\t%s\t%s\t%s%s%s%s%s\t%s\n", p, vi, reponum, reponame, startc, newver, vp, b, color0, bb;
   1.104 -				print p >> uplist;
   1.105 -				if (b!="") printf 1 >> blocked_counter;
   1.106 +				printf "%s\t%s\t%s\t%s\t", p, vi, reponum, reponame;
   1.107 +				printf "%s%s%s%s%s\t%s\n", startc, newver, vp, b, color0, bb;
   1.108 +				if (b=="")
   1.109 +					print p >> uplist;
   1.110 +				else
   1.111 +					printf 1 >> blocked_counter;
   1.112  			} else if (mi != mp) {
   1.113  				startc = (b=="") ? colornewbuild : colorblocked;
   1.114 -				printf "%s\t%s\t%s\t%s\t%s%s%s%s\t%s\n",   p, vi, reponum, reponame, startc, newbuild, b, color0, bb;
   1.115 -				print p >> uplist;
   1.116 -				if (b!="") printf 1 >> blocked_counter;
   1.117 +				printf "%s\t%s\t%s\t%s\t", p, vi, reponum, reponame;
   1.118 +				printf "%s%s%s%s\t%s\n",   startc, newbuild, b, color0, bb;
   1.119 +				if (b=="")
   1.120 +					print p >> uplist;
   1.121 +				else
   1.122 +					printf 1 >> blocked_counter;
   1.123  			}
   1.124  		}
   1.125  		p = $1; b = b1 = b2 = vi = mi = vp = mp = "";
   1.126 @@ -120,7 +105,7 @@
   1.127  	if ($2 == "b") { b = blocked; b1 = bl1; b2 = bl2; }
   1.128  	if ($2 == "i") { vi = $3; mi = $4; }
   1.129  	if ($2 == "p") { vp = $3; mp = $4; }
   1.130 -}' >> $tmp_up_list
   1.131 +}' >> "$tmp_up_list"
   1.132  
   1.133  	repo_number=$((repo_number + 1))
   1.134  
   1.135 @@ -135,56 +120,55 @@
   1.136  	</thead>
   1.137  	<tbody>
   1.138  EOT
   1.139 -		sort -t$'\t' -k1,3 $tmp_up_list | awk -F$'\t' '{
   1.140 -			if($4=="Main"){repoicon="slitaz"}else{repoicon="web"}
   1.141 -			if($6=="b"){pkgicon="pkgib"}else{pkgicon="pkgi"}
   1.142 +		sort -t$'\t' -k1,3 "$tmp_up_list" | awk -F$'\t' '{
   1.143 +			if($4=="Main"){repo_icon="slitaz"}else{repo_icon="web"}
   1.144 +			if($6=="b"){data_icon="pkgib"}else{data_icon="pkgi"}
   1.145  
   1.146  			printf "<tr><td><input type=\"checkbox\" name=\"pkg\" value=\"%s\"/>", $1;
   1.147 -			printf "<a data-icon=\"%s\" href=\"?info=%s\">%s</a></td>", pkgicon, $1, $1;
   1.148 -			printf "<td><span data-icon=\"%s\">%s</span></td>", repoicon, $4;
   1.149 +			printf "<a data-icon=\"%s\" href=\"?info=%s\">%s</a></td>", data_icon, $1, $1;
   1.150 +			printf "<td><span data-icon=\"%s\">%s</span></td>", repo_icon, $4;
   1.151  			printf "<td>%s</td>", $2;
   1.152  			printf "<td>%s</td></tr>\n", $5;
   1.153  			}'
   1.154  		echo '</tbody></table>' ;;
   1.155  	*)
   1.156  		emsg "<n>$(_ 'Package')<i 26>$(_ 'Repository')<i 38>$(_ 'Version')<i 49>$(_ 'Status')<->"
   1.157 -		sort -t$'\t' -k1,3 $tmp_up_list | awk -F$'\t' \
   1.158 +		sort -t$'\t' -k1,3 "$tmp_up_list" | awk -F$'\t' \
   1.159  			'{printf "%-24s %-11s %-10s %s\n", $1, $4, $2, $5}';;
   1.160  esac
   1.161  
   1.162 -sed -i /^$/d $UP_LIST
   1.163 -upnb=$(wc -l < $UP_LIST)
   1.164 -pkgs=$(wc -l < $PKGS_DB/installed.info)
   1.165 +sed -i /^$/d "$UP_LIST"
   1.166 +upnb=$(wc -l < "$UP_LIST")
   1.167 +pkgs=$(wc -l < "$PKGS_DB/installed.info")
   1.168  time=$(($(date +%s) - $time))
   1.169  if [ "$upnb" -eq 0 ]; then
   1.170  	install="n"
   1.171  	_ 'System is up-to-date...'
   1.172 -fi
   1.173 +else
   1.174 +	blocked_count=$(wc -m < "$blocked_counter")
   1.175  
   1.176 -if [ "$upnb" -ne 0 ]; then
   1.177 -	blocked_count="$(wc -m < $blocked_counter)"
   1.178 -
   1.179 -	blocked="$(_p \
   1.180 +	blocked=$(_p \
   1.181  		'%s blocked' \
   1.182 -		'%s blocked' $blocked_count \
   1.183 -		$blocked_count)"
   1.184 +		'%s blocked' "$blocked_count" \
   1.185 +		"$blocked_count")
   1.186  
   1.187  	footer "$(_p \
   1.188  		'You have %s available upgrade (%s)' \
   1.189 -		'You have %s available upgrades (%s)' $upnb \
   1.190 -		$upnb "$blocked")"
   1.191 +		'You have %s available upgrades (%s)' "$upnb" \
   1.192 +		"$upnb" "$blocked")"
   1.193  fi
   1.194  emsg "$(_p \
   1.195  	'%s installed package scanned in %ds' \
   1.196 -	'%s installed packages scanned in %ds' $pkgs \
   1.197 -	"<c 32>$pkgs</c>" $time)"
   1.198 +	'%s installed packages scanned in %ds' "$pkgs" \
   1.199 +	"<c 32>$pkgs</c>" "$time")"
   1.200  
   1.201  
   1.202  # Clean
   1.203 -rm $blocked_counter $tmp_up_list
   1.204 +rm "$blocked_counter" "$tmp_up_list"
   1.205  
   1.206  # Pkgs to upgrade ? Skip, let install them all, or ask user
   1.207  [ -n "$check" ] && exit 0
   1.208 +
   1.209  if [ "$upnb" -gt 0 ]; then
   1.210  	if [ -n "$install" ]; then
   1.211  		answer=0
   1.212 @@ -194,12 +178,12 @@
   1.213  	fi
   1.214  	case "$answer" in
   1.215  		0)
   1.216 -			for pkg in $(cat $UP_LIST); do
   1.217 +			for pkg in $(cat "$UP_LIST"); do
   1.218  				echo 'y' | tazpkg -gi "$pkg" --forced		#--reason="upgrade"
   1.219  			done
   1.220  			# List is generated each time and must be cleaned so
   1.221  			# tazpkg-notify doesn't find upgrades anymore.
   1.222 -			rm $UP_LIST; touch $UP_LIST ;;
   1.223 +			rm "$UP_LIST"; touch "$UP_LIST" ;;
   1.224  		*)
   1.225  			_ 'Leaving without any upgrades installed.'
   1.226  			newline