slitaz-base-files rev 258 5.6.4
libpkg.sh: unset TAGS too in unset_receipt(); and code reformatting
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Nov 27 16:26:29 2014 +0200 (2014-11-27) |
parents | 140b3dc5e90b |
children | f1371340fe5b |
files | rootfs/lib/libtaz.sh rootfs/usr/bin/ipinfo rootfs/usr/bin/sudo rootfs/usr/lib/slitaz/httphelper.sh rootfs/usr/lib/slitaz/libpkg.sh |
line diff
1.1 --- a/rootfs/lib/libtaz.sh Fri Oct 17 15:27:22 2014 +0200 1.2 +++ b/rootfs/lib/libtaz.sh Thu Nov 27 16:26:29 2014 +0200 1.3 @@ -31,7 +31,7 @@ 1.4 do 1.5 case "$opt" in 1.6 --*=*) export "${opt#--}" ;; 1.7 - --*) export ${opt#--}="yes" ;; 1.8 + --*) export ${opt#--}="yes" ;; 1.9 esac 1.10 done 1.11 [ "$HTTP_REFERER" ] && output="html" 1.12 @@ -70,8 +70,8 @@ 1.13 local sepchar="=" 1.14 [ "$HTTP_REFERER" ] && local sepchar="<hr />" 1.15 case $output in 1.16 - raw|gtk) local sepchar="-" && local cols="8" ;; 1.17 - html) local sepchar="<hr />" ;; 1.18 + raw|gtk) local sepchar="-"; local cols="8" ;; 1.19 + html) local sepchar="<hr />" ;; 1.20 *) 1.21 local cols=$(get_cols) 1.22 [ "$cols" ] || cols=80 ;; 1.23 @@ -89,8 +89,8 @@ 1.24 # Display a bold message. GTK Yad: Works only in --text="" 1.25 boldify() { 1.26 case $output in 1.27 - raw) echo "$@" ;; 1.28 - gtk) echo "<b>$@</b>" ;; 1.29 + raw) echo "$@" ;; 1.30 + gtk) echo "<b>$@</b>" ;; 1.31 html) echo "<strong>$@</strong>" ;; 1.32 *) echo -e "\\033[1m$@\\033[0m" ;; 1.33 esac 1.34 @@ -135,8 +135,7 @@ 1.35 local sep="\n" 1.36 local cols=$(get_cols) 1.37 [ "$cols" ] || cols=80 1.38 - for c in $(seq 1 $cols) 1.39 - do 1.40 + for c in $(seq 1 $cols); do 1.41 sep="${sep}=" 1.42 done 1.43 echo -en "$(echo "$@" | sed -e 's|<b>|\\033[1m|g; s|</b>|\\033[0m|g; \ 1.44 @@ -150,7 +149,7 @@ 1.45 # Check if user is logged as root. 1.46 check_root() { 1.47 if [ $(id -u) != 0 ]; then 1.48 - lgettext "You must be root to execute:" && echo " $(basename $0) $@" 1.49 + lgettext "You must be root to execute:"; echo " $(basename $0) $@" 1.50 exit 1 1.51 fi 1.52 } 1.53 @@ -193,8 +192,7 @@ 1.54 local in cols col1=1 line 1.55 in="$(echo "$1" | sed 's| *| |g')" 1.56 cols=$(get_cols); [ "$cols" ] || cols=80 1.57 - IFS=" 1.58 -" 1.59 + IFS=$'\n' 1.60 for line in $in; do 1.61 col=$(echo -n "$line" | cut -f1 | wc -m) 1.62 [ $col -gt $col1 ] && col1=$col
2.1 --- a/rootfs/usr/bin/ipinfo Fri Oct 17 15:27:22 2014 +0200 2.2 +++ b/rootfs/usr/bin/ipinfo Thu Nov 27 16:26:29 2014 +0200 2.3 @@ -10,6 +10,6 @@ 2.4 iface="$INTERFACE" 2.5 fi 2.6 2.7 -ifconfig ${iface} | fgrep 'inet addr:' | cut -d ':' -f 2 | awk '{print $1}' 2.8 +ifconfig ${iface} | fgrep 'inet addr:' | cut -d: -f2 | awk '{print $1}' 2.9 2.10 exit 0
3.1 --- a/rootfs/usr/bin/sudo Fri Oct 17 15:27:22 2014 +0200 3.2 +++ b/rootfs/usr/bin/sudo Thu Nov 27 16:26:29 2014 +0200 3.3 @@ -6,20 +6,16 @@ 3.4 3.5 cmd="$@" 3.6 pwd="$(pwd)" 3.7 -conf="$HOME/.config/slitaz/subox.conf" 3.8 - 3.9 -# Saved root password 3.10 -if [ -f "$conf" ]; then 3.11 - pass="$(cat $conf)" 3.12 -fi 3.13 +conf="${XDG_CONFIG_HOME:-$HOME/.config}/slitaz/subox.conf" 3.14 3.15 case "$1" in 3.16 usage|*help|"") 3.17 echo -e "\nExecute a command as root" 3.18 echo -e "Usage: $(basename $0) [command]\n" ;; 3.19 *) 3.20 - if [ "$pass" ]; then 3.21 - echo "$pass" | su -c "cd $pwd; $cmd" 3.22 + if [ -f "$conf" ]; then 3.23 + # Saved root password 3.24 + cat "$conf" | su -c "cd $pwd; $cmd" 3.25 else 3.26 su -c "cd $pwd; $cmd" 3.27 fi ;;
4.1 --- a/rootfs/usr/lib/slitaz/httphelper.sh Fri Oct 17 15:27:22 2014 +0200 4.2 +++ b/rootfs/usr/lib/slitaz/httphelper.sh Thu Nov 27 16:26:29 2014 +0200 4.3 @@ -19,22 +19,23 @@ 4.4 header() { 4.5 local i 4.6 [ -z "$1" ] && set -- "Content-type: text/html; charset=UTF-8" 4.7 - for i in "$@" "" 4.8 - do 4.9 + for i in "$@" ""; do 4.10 echo -e "$i\r" 4.11 done 4.12 } 4.13 4.14 http_urlencode() { 4.15 - sed -e "s|%|%25|g;s|!|%21|g;s|\*|%2A|g;s|'|%27|g;s|(|%28|g" \ 4.16 - -e "s|)|%29|g;s|;|%3B|g;s|:|%3A|g;s|@|%40|g;s|&|%26|g" \ 4.17 - -e "s|=|%3D|g;s|+|%2B|g;s|\$|%24|g;s|,|%2C|g;s|/|%2F|g" \ 4.18 - -e "s|\?|%3F|g;s|#|%25|g;s|\[|%5B|g;s|\]|%5D|g;s| |+|g" 4.19 + sed \ 4.20 + -e "s|%|%25|g; s|!|%21|g; s|\*|%2A|g; s|'|%27|g; s|(|%28|g" \ 4.21 + -e "s|)|%29|g; s|;|%3B|g; s|:|%3A|g; s|@|%40|g; s|&|%26|g" \ 4.22 + -e "s|=|%3D|g; s|+|%2B|g; s|\$|%24|g; s|,|%2C|g; s|/|%2F|g" \ 4.23 + -e "s|\?|%3F|g; s|#|%25|g; s|\[|%5B|g; s|\]|%5D|g; s| |+|g" 4.24 } 4.25 4.26 htmlentities() { 4.27 - echo $1 | sed -e 's|&|\&|g;s|<|\<|g;s|>|\>|g' \ 4.28 - -e 's|"|\"|g;s|'"'"'|\´|g;s|\t|\	|g' 4.29 + echo $1 | sed \ 4.30 + -e 's|&|\&|g; s|<|\<|g; s|>|\>|g' \ 4.31 + -e 's|"|\"|g; s|'"'"'|\'|g; s|\t|\	|g' 4.32 } 4.33 4.34 # MD5 crypt a string such as password (httpd -m dont give same result ?) 4.35 @@ -49,83 +50,98 @@ 4.36 4.37 _ARRAY() 4.38 { 4.39 -[ -z "$2" ] && eval echo \$${1}__NAMES || 4.40 - [ -n "$(eval echo \$${1}__NAMES)" ] && eval echo \$${1}_${2}_${3:-1} 4.41 + if [ -z "$2" ]; then 4.42 + eval echo \$${1}__NAMES 4.43 + else 4.44 + [ -n "$(eval echo \$${1}__NAMES)" ] && eval echo \$${1}_${2}_${3:-1} 4.45 + fi 4.46 } 4.47 4.48 -GET() { _ARRAY GET "$1" $2; } 4.49 -POST() { _ARRAY POST "$1" $2; } 4.50 -FILE() { _ARRAY FILE "$1" $2; } 4.51 -COOKIE() { _ARRAY COOKIE "$1" $2; } 4.52 +GET() { _ARRAY GET "$1" $2; } 4.53 +POST() { _ARRAY POST "$1" $2; } 4.54 +FILE() { _ARRAY FILE "$1" $2; } 4.55 +COOKIE() { _ARRAY COOKIE "$1" $2; } 4.56 4.57 httpinfo() 4.58 { 4.59 -local i 4.60 -local j 4.61 -local x 4.62 -env | sort | sed "s/=/='/;s/$/'/" 4.63 -for x in GET POST COOKIE ; do 4.64 - for i in $($x) ; do 4.65 - if [ $($x $i count) -gt 1 ]; then 4.66 - for j in $(seq 1 $($x $i count)); do 4.67 - echo "$x($i,$j)='$($x $i $j)'" 4.68 - done 4.69 - else 4.70 - echo "$x($i)='$($x $i)'" 4.71 - fi 4.72 + local i 4.73 + local j 4.74 + local x 4.75 + env | sort | sed "s/=/='/;s/$/'/" 4.76 + for x in GET POST COOKIE ; do 4.77 + for i in $($x) ; do 4.78 + if [ $($x $i count) -gt 1 ]; then 4.79 + for j in $(seq 1 $($x $i count)); do 4.80 + echo "$x($i,$j)='$($x $i $j)'" 4.81 + done 4.82 + else 4.83 + echo "$x($i)='$($x $i)'" 4.84 + fi 4.85 + done 4.86 done 4.87 -done 4.88 -for i in $(FILE) ; do 4.89 - for j in name size type tmpname ; do 4.90 - echo "FILE($i,$j)='$(FILE $i $j)'" 4.91 + for i in $(FILE) ; do 4.92 + for j in name size type tmpname ; do 4.93 + echo "FILE($i,$j)='$(FILE $i $j)'" 4.94 + done 4.95 done 4.96 -done 4.97 } 4.98 4.99 read_query_string() 4.100 { 4.101 -local i 4.102 -local names 4.103 -local cnt 4.104 -names="" 4.105 -IFS="&" 4.106 -for i in $2 ; do 4.107 - var=${i%%[^A-Za-z_0-9]*} 4.108 - case " $names " in 4.109 - *\ $var\ *) eval cnt=\$${1}_${var}_count ;; 4.110 - *) cnt=0 4.111 - names="$names $var" ;; 4.112 - esac 4.113 - eval ${1}_${var}_count=$((++cnt)) 4.114 - eval ${1}_${var}_$cnt=\'$(busybox httpd -d "${i#*=}" | sed "s/'/\'\\\\\'\'/g")\' 4.115 -done 4.116 -unset IFS 4.117 -eval ${1}__NAMES=\'${names# }\' 4.118 + local i 4.119 + local names 4.120 + local cnt 4.121 + names="" 4.122 + IFS="&" 4.123 + for i in $2 ; do 4.124 + var=${i%%[^A-Za-z_0-9]*} 4.125 + case " $names " in 4.126 + *\ $var\ *) 4.127 + eval cnt=\$${1}_${var}_count ;; 4.128 + *) 4.129 + cnt=0 4.130 + names="$names $var" ;; 4.131 + esac 4.132 + eval ${1}_${var}_count=$((++cnt)) 4.133 + eval ${1}_${var}_$cnt=\'$(busybox httpd -d "${i#*=}" | sed "s/'/\'\\\\\'\'/g")\' 4.134 + done 4.135 + unset IFS 4.136 + eval ${1}__NAMES=\'${names# }\' 4.137 } 4.138 4.139 + 4.140 + 4.141 [ -z "$GET__NAMES" ] && read_query_string GET "$QUERY_STRING" 4.142 [ -z "$COOKIE_NAMES" ] && 4.143 read_query_string COOKIE "$(echo "$HTTP_COOKIE" | sed 's/; /\&/g')" 4.144 4.145 + 4.146 + 4.147 ddcut() 4.148 { 4.149 -page=4096 4.150 -skip=$1 4.151 -count=$(($2 - $1 -2)) 4.152 -tmp=$(($skip / $page)) 4.153 -[ $tmp -ne 0 ] && dd bs=$page skip=$tmp count=0 4.154 -skip=$(($skip - ($tmp * $page) )) 4.155 -dd bs=1 skip=$skip count=0 4.156 -tmp=$(( ($page - $skip) % $page )) 4.157 -if [ $tmp -ne 0 -a $tmp -le $count ]; then 4.158 - dd bs=1 count=$tmp 4.159 - count=$(($count - $tmp)) 4.160 -fi 4.161 -tmp=$(($count / $page)) 4.162 -[ $tmp -ne 0 ] && dd bs=$page count=$tmp 4.163 -dd bs=1 count=$(($count - ($tmp * $page) )) 4.164 + page=4096 4.165 + skip=$1 4.166 + count=$(($2 - $1 -2)) 4.167 + 4.168 + tmp=$(($skip / $page)) 4.169 + [ $tmp -ne 0 ] && dd bs=$page skip=$tmp count=0 4.170 + 4.171 + skip=$(($skip - ($tmp * $page) )) 4.172 + dd bs=1 skip=$skip count=0 4.173 + 4.174 + tmp=$(( ($page - $skip) % $page )) 4.175 + if [ $tmp -ne 0 -a $tmp -le $count ]; then 4.176 + dd bs=1 count=$tmp 4.177 + count=$(($count - $tmp)) 4.178 + fi 4.179 + 4.180 + tmp=$(($count / $page)) 4.181 + [ $tmp -ne 0 ] && dd bs=$page count=$tmp 4.182 + dd bs=1 count=$(($count - ($tmp * $page) )) 4.183 } 4.184 4.185 + 4.186 + 4.187 if [ "$REQUEST_METHOD$POST__NAMES" == "POST" ]; then 4.188 prefix=/tmp/httpd_post 4.189 mkdir $prefix$$ 4.190 @@ -138,73 +154,79 @@ 4.191 cat > ${post}0 4.192 read args < ${post}0 4.193 delim="${args%?}" 4.194 + 4.195 case "$delim" in 4.196 - 4.197 - -*) awk "/$delim/ { o+=index(\$0,\"$delim\")-1; print o } 4.198 - { o+=1+length() }" < ${post}0 | while read offset; do 4.199 - if [ $offset -ne 0 ]; then 4.200 - ddcut $last $offset < ${post}0 > $post$n 2> /dev/null 4.201 - n=$(($n+1)) 4.202 - fi 4.203 - last=$offset 4.204 + 4.205 + -*) 4.206 + awk "/$delim/ { o+=index(\$0,\"$delim\")-1; print o } 4.207 + { o+=1+length() }" < ${post}0 | \ 4.208 + while read offset; do 4.209 + if [ $offset -ne 0 ]; then 4.210 + ddcut $last $offset < ${post}0 > $post$n 2> /dev/null 4.211 + n=$(($n+1)) 4.212 + fi 4.213 + last=$offset 4.214 done 4.215 rm -f ${post}0 4.216 - CR=`printf '\r'` 4.217 + 4.218 for i in $post* ; do 4.219 - head -n 2 $i | grep -q filename= || echo '' >> $i 4.220 - filename= 4.221 - while read line; do 4.222 - case "$line" in 4.223 - 4.224 - *Content-Disposition*) 4.225 - name=$(echo $line | sed 's/.* name="\([^"]*\)".*$/\1/') 4.226 - name=${name%%[^A-Za-z_0-9]*} 4.227 - case "$line" in 4.228 - *filename=*) filename=$(echo $line | sed 's/.* filename="\([^"]*\)".*$/\1/') ;; 4.229 - esac ;; 4.230 - 4.231 - *Content-Type*) 4.232 - type=$(echo $line | sed 's/.*-Type: \(.*\).$/\1/') ;; 4.233 - 4.234 - $CR) 4.235 - if [ -n "$filename" ]; then 4.236 - tmp=$(mktemp $prefix$$/uploadXXXXXX) 4.237 - cat > $tmp 4.238 - FILE__NAMES="$FILE__NAMES $name" 4.239 - FILE__NAMES="${FILE__NAMES# }" 4.240 - eval FILE_${name}_tmpname=$tmp 4.241 - eval FILE_${name}_name=$filename 4.242 - eval FILE_${name}_size=$(stat -c %s $tmp) 4.243 - eval FILE_${name}_type=$type 4.244 - elif [ -n "$name" ]; then 4.245 - eval cnt=\$POST_${name}_count 4.246 - cnt=$(($cnt + 1)) 4.247 - eval var=\$POST_${name}_$cnt 4.248 - while read line; do 4.249 - [ -n "$var" ] && var="$var 4.250 -" 4.251 - var="$var$line" 4.252 - done 4.253 - eval POST_${name}_$cnt="\$var" 4.254 - eval POST_${name}_count=$cnt 4.255 - case " $POST__NAMES " in 4.256 - *\ $name\ *) ;; 4.257 - *) POST__NAMES="$POST__NAMES $name" 4.258 - POST__NAMES="${POST__NAMES# }" ;; 4.259 + head -n2 $i | grep -q filename= || echo '' >> $i 4.260 + filename= 4.261 + while read line; do 4.262 + case "$line" in 4.263 + 4.264 + *Content-Disposition*) 4.265 + name=$(echo $line | sed 's/.* name="\([^"]*\)".*$/\1/') 4.266 + name=${name%%[^A-Za-z_0-9]*} 4.267 + case "$line" in 4.268 + *filename=*) 4.269 + filename=$(echo $line | sed 's/.* filename="\([^"]*\)".*$/\1/') ;; 4.270 + esac ;; 4.271 + 4.272 + *Content-Type*) 4.273 + type=$(echo $line | sed 's/.*-Type: \(.*\).$/\1/') ;; 4.274 + 4.275 + $'\r') 4.276 + if [ -n "$filename" ]; then 4.277 + tmp=$(mktemp $prefix$$/uploadXXXXXX) 4.278 + cat > $tmp 4.279 + FILE__NAMES="$FILE__NAMES $name" 4.280 + FILE__NAMES="${FILE__NAMES# }" 4.281 + eval FILE_${name}_tmpname=$tmp 4.282 + eval FILE_${name}_name=$filename 4.283 + eval FILE_${name}_size=$(stat -c %s $tmp) 4.284 + eval FILE_${name}_type=$type 4.285 + elif [ -n "$name" ]; then 4.286 + eval cnt=\$POST_${name}_count 4.287 + cnt=$(($cnt + 1)) 4.288 + eval var=\$POST_${name}_$cnt 4.289 + while read line; do 4.290 + [ -n "$var" ] && var="$var"$'\n' 4.291 + var="$var$line" 4.292 + done 4.293 + eval POST_${name}_$cnt="\$var" 4.294 + eval POST_${name}_count=$cnt 4.295 + case " $POST__NAMES " in 4.296 + *\ $name\ *) 4.297 + ;; 4.298 + *) 4.299 + POST__NAMES="$POST__NAMES $name" 4.300 + POST__NAMES="${POST__NAMES# }" ;; 4.301 + esac 4.302 + fi 4.303 + break ;; 4.304 + 4.305 + *) ;; 4.306 esac 4.307 - fi 4.308 - break ;; 4.309 - *) 4.310 - esac 4.311 - done < $i 4.312 - rm -f $i 4.313 + done < $i 4.314 + rm -f $i 4.315 done 4.316 #rmdir $(dirname $post) 4.317 ;; 4.318 - 4.319 - *) 4.320 + 4.321 + *) 4.322 rm -rf $(dirname $post) 4.323 read_query_string POST "$args" ;; 4.324 - 4.325 + 4.326 esac 4.327 fi
5.1 --- a/rootfs/usr/lib/slitaz/libpkg.sh Fri Oct 17 15:27:22 2014 +0200 5.2 +++ b/rootfs/usr/lib/slitaz/libpkg.sh Thu Nov 27 16:26:29 2014 +0200 5.3 @@ -13,13 +13,12 @@ 5.4 # Unset all receipt variables. 5.5 unset_receipt() { 5.6 unset PACKAGE VERSION EXTRAVERSION SHORT_DESC HOST_ARCH TARBALL \ 5.7 - DEPENDS BUILD_DEPENDS WANTED WGET_URL PROVIDE CROSS_BUG 5.8 + DEPENDS BUILD_DEPENDS WANTED WGET_URL PROVIDE CROSS_BUG TAGS 5.9 } 5.10 5.11 # Converts pkg.tazpkg to pkg 5.12 package_name() { 5.13 - local name=$(basename $1) 5.14 - echo ${name%.tazpkg} 5.15 + basename $1 .tazpkg 5.16 } 5.17 5.18 # Check mirror ID: return false if no changes or mirror unreachable 5.19 @@ -30,12 +29,12 @@ 5.20 if wget -qs ${mirror%/}/ID; then 5.21 wget -q ${mirror%/}/ID 5.22 else 5.23 - _n "Mirror is unreachable"; false 5.24 - status && return 1 5.25 + _n "Mirror is unreachable" 5.26 + false; status; return 1 5.27 fi 5.28 if [ "$(cat ID)" == "$(cat ID.bak)" ]; then 5.29 - _n "Mirror is up-to-date"; true 5.30 - status && return 1 5.31 + _n "Mirror is up-to-date" 5.32 + true; status; return 1 5.33 fi 5.34 } 5.35