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