tazpanel rev 126

pkgs.cgi: first step to undigest support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Apr 16 00:05:28 2011 +0200 (2011-04-16)
parents 1d03158c5c3e
children 7855bd81abb7
files pkgs.cgi
line diff
     1.1 --- a/pkgs.cgi	Fri Apr 15 22:41:49 2011 +0200
     1.2 +++ b/pkgs.cgi	Sat Apr 16 00:05:28 2011 +0200
     1.3 @@ -108,26 +108,58 @@
     1.4  }
     1.5  
     1.6  sidebar() {
     1.7 +	[ -n "$repo" ] || repo=public
     1.8  	cat << EOT
     1.9  <div id="sidebar">
    1.10  	<h4>Categories</h4>
    1.11 -	<a class="active_base-system" href="$SCRIPT_NAME?cat=base-system">Base-system</a>
    1.12 -	<a class="active_x-window" href="$SCRIPT_NAME?cat=x-window">X window</a>
    1.13 -	<a class="active_utilities" href="$SCRIPT_NAME?cat=utilities">Utilities</a>
    1.14 -	<a class="active_network" href="$SCRIPT_NAME?cat=network">Network</a>
    1.15 -	<a class="active_games" href="$SCRIPT_NAME?cat=games">Games</a>
    1.16 -	<a class="active_graphics" href="$SCRIPT_NAME?cat=graphics">Graphics</a>
    1.17 -	<a class="active_office" href="$SCRIPT_NAME?cat=office">Office</a>
    1.18 -	<a class="active_multimedia" href="$SCRIPT_NAME?cat=multimedia">Multimedia</a>
    1.19 -	<a class="active_development" href="$SCRIPT_NAME?cat=development">Development</a>
    1.20 -	<a class="active_system-tools" href="$SCRIPT_NAME?cat=system-tools">System tools</a>
    1.21 -	<a class="active_security" href="$SCRIPT_NAME?cat=security">Security</a>
    1.22 -	<a class="active_misc" href="$SCRIPT_NAME?cat=misc">Misc</a>
    1.23 -	<a class="active_meta" href="$SCRIPT_NAME?cat=meta">Meta</a>
    1.24 -	<a class="active_non-free" href="$SCRIPT_NAME?cat=non-free">Non free</a>
    1.25 -	<a class="active_all" href="$SCRIPT_NAME?cat=all">All</a>
    1.26 -</div>
    1.27 +	<a class="active_base-system" href="$SCRIPT_NAME?cat=base-system&repo=$repo">Base-system</a>
    1.28 +	<a class="active_x-window" href="$SCRIPT_NAME?cat=x-window&repo=$repo">X window</a>
    1.29 +	<a class="active_utilities" href="$SCRIPT_NAME?cat=utilities&repo=$repo">Utilities</a>
    1.30 +	<a class="active_network" href="$SCRIPT_NAME?cat=network&repo=$repo">Network</a>
    1.31 +	<a class="active_games" href="$SCRIPT_NAME?cat=games&repo=$repo">Games</a>
    1.32 +	<a class="active_graphics" href="$SCRIPT_NAME?cat=graphics&repo=$repo">Graphics</a>
    1.33 +	<a class="active_office" href="$SCRIPT_NAME?cat=office&repo=$repo">Office</a>
    1.34 +	<a class="active_multimedia" href="$SCRIPT_NAME?cat=multimedia&repo=$repo">Multimedia</a>
    1.35 +	<a class="active_development" href="$SCRIPT_NAME?cat=development&repo=$repo">Development</a>
    1.36 +	<a class="active_system-tools" href="$SCRIPT_NAME?cat=system-tools&repo=$repo">System tools</a>
    1.37 +	<a class="active_security" href="$SCRIPT_NAME?cat=security&repo=$repo">Security</a>
    1.38 +	<a class="active_misc" href="$SCRIPT_NAME?cat=misc&repo=$repo">Misc</a>
    1.39 +	<a class="active_meta" href="$SCRIPT_NAME?cat=meta&repo=$repo">Meta</a>
    1.40 +	<a class="active_non-free" href="$SCRIPT_NAME?cat=non-free&repo=$repo">Non free</a>
    1.41 +	<a class="active_all" href="$SCRIPT_NAME?cat=all&repo=$repo">All</a>
    1.42  EOT
    1.43 +	
    1.44 +	if [ -d $LOCALSTATE/undigest ]; then
    1.45 +		[ -n "$category" ] || category="base-system"
    1.46 +		cat << EOT
    1.47 +	<p></p>
    1.48 +	<h4>Repositories</h4>
    1.49 +	<a class="repo_public" href="$SCRIPT_NAME?repo=public&cat=$category">Public</a>
    1.50 +EOT
    1.51 +		for i in $(ls $LOCALSTATE/undigest); do
    1.52 +			cat << EOT
    1.53 +	<a class="repo_$i" href="$SCRIPT_NAME?repo=$i&cat=$category">$i</a>
    1.54 +EOT
    1.55 +		done
    1.56 +		cat << EOT
    1.57 +	<a class="repo_any" href="$SCRIPT_NAME?repo=any&cat=$category">Any</a>
    1.58 +EOT
    1.59 +	fi
    1.60 +	echo "</div>"
    1.61 +}
    1.62 +
    1.63 +repo_list() {
    1.64 +	if [ -n "$(ls $LOCALSTATE/undigest/ 2> /dev/null)" ]; then
    1.65 +		case "$repo" in
    1.66 +		public)	;;
    1.67 +		""|any) for i in $LOCALSTATE/undigest/* ; do
    1.68 +				echo "$i/$1"
    1.69 +			done ;;
    1.70 +		*)	echo "$LOCALSTATE/undigest/$repo/$1"
    1.71 +			return ;;
    1.72 +		esac
    1.73 +	fi
    1.74 +	echo "$LOCALSTATE/$1"
    1.75  }
    1.76  
    1.77  #
    1.78 @@ -188,12 +220,14 @@
    1.79  		# packages is too resource intensive and not useful.
    1.80  		#
    1.81  		cd  $LOCALSTATE
    1.82 +		repo=$(GET repo)
    1.83 +		[ -n "$repo" ] || repo=Any
    1.84  		category=$(GET cat)
    1.85  		[ "$category" == "cat" ] && category="base-system"
    1.86  		grep_category=$category
    1.87  		[ "$grep_category" == "all" ] && grep_category=".*"
    1.88  		search_form
    1.89 -		sidebar | sed s/"active_${category}"/"active"/
    1.90 +		sidebar | sed "s/active_$category/active/;s/repo_$repo/active/"
    1.91  		LOADING_MSG="Listing packages..."
    1.92  		loading_msg
    1.93  		cat << EOT
    1.94 @@ -204,6 +238,7 @@
    1.95  	`gettext "Selection:"`
    1.96  	<input type="submit" name="do" value="Install" />
    1.97  	<input type="submit" name="do" value="Remove" />
    1.98 +	<input type="hidden" name="repo" value="$repo" />
    1.99  </div>
   1.100  <div class="float-right">
   1.101  	`gettext "List:"`
   1.102 @@ -212,12 +247,16 @@
   1.103  	<a class="button" href='$SCRIPT_NAME?list'>
   1.104  		<img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
   1.105  </div>
   1.106 +</div>
   1.107  EOT
   1.108 -		echo '</div>'
   1.109 -		table_start
   1.110 -		table_head
   1.111 -		grep "| $grep_category |" packages.desc | parse_packages_desc
   1.112 -		table_end
   1.113 +		for i in $(repo_list packages.desc); do
   1.114 +			[ "$repo" != "public" -a -d $LOCALSTATE/undigest ] &&
   1.115 +				echo "<h3>Repository: $(dirname $i)</h3>"
   1.116 +			table_start
   1.117 +			table_head
   1.118 +			grep "| $grep_category |" $i | parse_packages_desc
   1.119 +			table_end
   1.120 +		done
   1.121  		echo '</form>' ;;
   1.122  	*\ search\ *)
   1.123  		#
   1.124 @@ -247,8 +286,8 @@
   1.125  	<a class="button" href='$SCRIPT_NAME?list'>
   1.126  		<img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
   1.127  </div>
   1.128 +</div>
   1.129  EOT
   1.130 -		echo '</div>'
   1.131  		table_start
   1.132  		if [ "$(GET files)" ]; then
   1.133  			cat <<EOT
   1.134 @@ -256,7 +295,8 @@
   1.135  			<td>`gettext "Package"`</td>
   1.136  			<td>`gettext "File"`</td>
   1.137  		</tr>
   1.138 -		$(unlzma -c files.list.lzma | grep -Ei ": .*$(GET search)" | \
   1.139 +		$(unlzma -c files.list.lzma undigest/*/files.list.lzma \
   1.140 +		  2>/dev/null | grep -Ei ": .*$(GET search)" | \
   1.141  		  while read PACKAGE FILE; do
   1.142  		  	PACKAGE=${PACKAGE%:}
   1.143  		  	image=tazpkg-installed.png
   1.144 @@ -270,7 +310,8 @@
   1.145  EOT
   1.146  		else
   1.147  			table_head
   1.148 -			grep -i $pkg packages.desc | parse_packages_desc
   1.149 +			grep -is $pkg packages.desc undigest/*/packages.desc | \
   1.150 +				parse_packages_desc
   1.151  		fi
   1.152  		table_end
   1.153  		echo '</form>' ;;
   1.154 @@ -343,7 +384,9 @@
   1.155  		table_head
   1.156  		for pkg in `cat packages.up`
   1.157  		do
   1.158 -			grep "^$pkg |" $LOCALSTATE/packages.desc | parse_packages_desc
   1.159 +			grep -s "^$pkg |" $LOCALSTATE/packages.desc \
   1.160 +				$LOCALSTATE/undisgest/*/packages.desc | \
   1.161 +				parse_packages_desc
   1.162  		done
   1.163  		table_end
   1.164  		echo '</form>' ;;
   1.165 @@ -407,7 +450,8 @@
   1.166  			LOADING_MSG=$(gettext "Getting package info...")
   1.167  			loading_msg
   1.168  			IFS='|'
   1.169 -			set -- $(grep "^$pkg |" packages.desc)
   1.170 +			set -- $(grep -s "^$pkg |" packages.desc \
   1.171 +				 undigest/*/packages.desc)
   1.172  			unset IFS
   1.173  			PACKAGE=$1
   1.174  			VERSION="$(echo $2)"
   1.175 @@ -482,12 +526,14 @@
   1.176  		else
   1.177  			cat << EOT
   1.178  Website     : <a href="$WEB_SITE">$WEB_SITE</a>
   1.179 -Sizes       : `grep -A 3 ^$pkg$ packages.txt | tail -n 1 | sed 's/ *//'`
   1.180 +Sizes       : `grep -sA 3 ^$pkg$ packages.txt undigest/*/packages.txt | \
   1.181 +		tail -n 1 | sed 's/ *//'`
   1.182  </pre>
   1.183  
   1.184  <p>`gettext "Installed files:"`</p>
   1.185  <pre>
   1.186 -`unlzma -c files.list.lzma | sed "/^$pkg: /!d;s/^$pkg: //"`
   1.187 +`unlzma -c files.list.lzma undigest/*/files.list.lzma 2> /dev/null | \
   1.188 + sed "/^$pkg: /!d;s/^$pkg: //"`
   1.189  </pre>
   1.190  EOT
   1.191  		fi