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