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|&|\&amp;|g;s|<|\&lt;|g;s|>|\&gt;|g' \
    4.28 -		-e 's|"|\&quot;|g;s|'"'"'|\&acute;|g;s|\t|\&#09;|g'
    4.29 +	echo $1 | sed \
    4.30 +		-e 's|&|\&amp;|g;  s|<|\&lt;|g;       s|>|\&gt;|g' \
    4.31 +		-e 's|"|\&quot;|g; s|'"'"'|\&apos;|g; s|\t|\&#09;|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