tazpkg diff tazpanel/pkgs.cgi @ rev 718
pkgs.cgi: new package' links (less HTML, more CSS); add pkgs.css; transition to packages.info.
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Dec 18 03:43:49 2014 +0200 (2014-12-18) |
parents | 1dea2235808c |
children | 474681a166a8 |
line diff
1.1 --- a/tazpanel/pkgs.cgi Wed Dec 17 01:59:31 2014 +0200 1.2 +++ b/tazpanel/pkgs.cgi Thu Dec 18 03:43:49 2014 +0200 1.3 @@ -24,15 +24,16 @@ 1.4 1.5 pkg_info_link() 1.6 { 1.7 - echo "$SCRIPT_NAME?info=$1" | sed 's/+/%2B/g' 1.8 + echo "<a class=\"$2\" href=\"?info=${1//+/%2B}\">$1</a>" | sed 's| class=""||' 1.9 } 1.10 1.11 1.12 +# Display localized short description 1.13 + 1.14 i18n_desc() { 1.15 - # Display localized short description 1.16 for L in $LANG ${LANG%%_*}; do 1.17 if [ -e "$PKGS_DB/packages-desc.$L" ]; then 1.18 - LOCDESC=$(awk -F$'\t' -vp=$pkg '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) 1.19 + LOCDESC=$(awk -F$'\t' -vp=$1 '{if ($1 == p) print $2}' $PKGS_DB/packages-desc.$L) 1.20 if [ -n "$LOCDESC" ]; then 1.21 SHORT_DESC="$LOCDESC" 1.22 break 1.23 @@ -48,17 +49,32 @@ 1.24 IFS="|" 1.25 cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE 1.26 do 1.27 - image=tazpkg-installed.png 1.28 - [ -d $INSTALLED/${PACKAGE% } ] || image=tazpkg.png 1.29 - i18n_desc 1.30 + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi 1.31 + i18n_desc $PACKAGE 1.32 cat << EOT 1.33 <tr> 1.34 -<td><input type="checkbox" name="pkg" value="$PACKAGE"> 1.35 - <a href="$(pkg_info_link $PACKAGE)"><img 1.36 - src="$IMAGES/$image"/>$PACKAGE</a></td> 1.37 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.38 <td>$VERSION</td> 1.39 <td class="desc">$SHORT_DESC</td> 1.40 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 1.41 +<td><a class="w" href="$WEB_SITE"></a></td> 1.42 +</tr> 1.43 +EOT 1.44 + done 1.45 + unset IFS 1.46 +} 1.47 + 1.48 + 1.49 +parse_packages_info() { 1.50 + IFS=$'\t' 1.51 + while read PACKAGE VERSION CATEGORY SHORT_DESC WEB_SITE TAGS SIZES DEPENDS; do 1.52 + class=pkg; [ -d $INSTALLED/${PACKAGE% } ] && class=pkgi 1.53 + i18n_desc $PACKAGE 1.54 + cat << EOT 1.55 +<tr> 1.56 +<td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.57 +<td>$VERSION</td> 1.58 +<td class="desc">$SHORT_DESC</td> 1.59 +<td><a class="w" href="$WEB_SITE"></a></td> 1.60 </tr> 1.61 EOT 1.62 done 1.63 @@ -279,8 +295,7 @@ 1.64 <img src="$IMAGES/update.png" />$(_ 'Check upgrades')</a> 1.65 </div> 1.66 </div> 1.67 -EOT 1.68 - cat << EOT 1.69 + 1.70 <table class="zebra outbox"> 1.71 $(table_head) 1.72 <tbody> 1.73 @@ -290,18 +305,14 @@ 1.74 echo '<tr>' 1.75 # Use default tazpkg icon since all packages displayed are 1.76 # installed 1.77 - colorpkg=$pkg 1.78 - grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && 1.79 - colorpkg="<span style='color: red;'>$pkg</span>" 1.80 - i18n_desc 1.81 + blocked= 1.82 + grep -qs "^$pkg$" $PKGS_DB/blocked-packages.list && blocked="b" 1.83 + i18n_desc $pkg 1.84 cat << EOT 1.85 -<td class="pkg"> 1.86 - <input type="checkbox" name="pkg" value="$pkg" /> 1.87 - <a href="$(pkg_info_link $pkg)"><img 1.88 - src="$IMAGES/tazpkg-installed.png"/>$colorpkg</a></td> 1.89 +<td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkgi$blocked)</td> 1.90 <td>$VERSION</td> 1.91 <td class="desc">$SHORT_DESC</td> 1.92 -<td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 1.93 +<td><a class="w" href="$WEB_SITE"></a></td> 1.94 </tr> 1.95 EOT 1.96 done 1.97 @@ -349,17 +360,13 @@ 1.98 for pkg in $(ls $target/$INSTALLED); do 1.99 [ -s $pkg/receipt ] && continue 1.100 . $target/$INSTALLED/$pkg/receipt 1.101 - i18n_desc 1.102 + i18n_desc $pkg 1.103 cat << EOT 1.104 <tr> 1.105 - <td class="pkg"> 1.106 - <input type="checkbox" name="pkg" value="$pkg" /> 1.107 - <a href="$(pkg_info_link $pkg)"><img 1.108 - src="$IMAGES/tazpkg.png"/>$pkg</a> 1.109 - </td> 1.110 + <td class="pkg"><input type="checkbox" name="pkg" value="$pkg" />$(pkg_info_link $pkg pkg)</td> 1.111 <td>$VERSION</td> 1.112 <td class="desc">$SHORT_DESC</td> 1.113 - <td><a href="$WEB_SITE"><img src="$IMAGES/browser.png"/></a></td> 1.114 + <td><a class="w" href="$WEB_SITE"></a></td> 1.115 </tr> 1.116 EOT 1.117 done 1.118 @@ -380,8 +387,8 @@ 1.119 repo=$(GET repo) 1.120 category=$(GET cat) 1.121 [ "$category" == "cat" ] && category="base-system" 1.122 - grep_category=$category 1.123 - [ "$grep_category" == "all" ] && grep_category=".*" 1.124 + #grep_category=$category 1.125 + #[ "$grep_category" == "all" ] && grep_category="*" 1.126 search_form 1.127 sidebar | sed "s/active_$category/active/;s/repo_$repo/active/" 1.128 LOADING_MSG="$(_ 'Listing packages...')" 1.129 @@ -414,16 +421,23 @@ 1.130 <h3>$(_ 'Repository: %s' $Repo_Name)</h3> 1.131 EOT 1.132 fi 1.133 - cat << EOT 1.134 -<table class="zebra outbox"> 1.135 -$(table_head) 1.136 -<tbody> 1.137 -EOT 1.138 - if [ "$category" == "extra" ]; then 1.139 - sed 's,.*,&|--|--|--|http://mirror.slitaz.org/packages/get/&,' $i/extra.list 1.140 - else 1.141 - grep "| $grep_category |" $i/packages.desc 1.142 - fi | parse_packages_desc 1.143 + echo '<table class="zebra outbox">' 1.144 + table_head 1.145 + echo '<tbody>' 1.146 + 1.147 + case $category in 1.148 + extra) 1.149 + sed 's|.*|& -- - -- http://mirror.slitaz.org/packages/get/& - - -|' \ 1.150 + $i/extra.list | parse_packages_info 1.151 + ;; 1.152 + all) 1.153 + parse_packages_info < $i/packages.info 1.154 + ;; 1.155 + *) 1.156 + awk -F$'\t' -vc=$category '{if ($3 == c) print $0}' \ 1.157 + $i/packages.info | parse_packages_info 1.158 + ;; 1.159 + esac 1.160 cat << EOT 1.161 </tbody> 1.162 </table> 1.163 @@ -439,7 +453,7 @@ 1.164 # 1.165 pkg=$(GET search) 1.166 repo=$(GET repo) 1.167 - cd $PKGS_DB 1.168 + cd $PKGS_DB 1.169 search_form 1.170 sidebar | sed "s/repo_$repo/active/" 1.171 LOADING_MSG="$(_ 'Searching packages...')" 1.172 @@ -477,27 +491,22 @@ 1.173 <thead> 1.174 <tbody> 1.175 EOT 1.176 - unlzma -c $(repo_list /files.list.lzma) \ 1.177 - | grep -Ei ": .*$(GET search)" | \ 1.178 - while read PACKAGE FILE; do 1.179 - PACKAGE=${PACKAGE%:} 1.180 - image=tazpkg-installed.png 1.181 - [ -d $INSTALLED/$PACKAGE ] || image=tazpkg.png 1.182 - cat << EOT 1.183 + lzcat $(repo_list /files.list.lzma) | grep -Ei ": .*$(GET search)" | \ 1.184 + while read PACKAGE FILE; do 1.185 + PACKAGE=${PACKAGE%:} 1.186 + class=pkg; [ -d $INSTALLED/$PACKAGE ] && class=pkgi 1.187 + cat << EOT 1.188 <tr> 1.189 - <td><input type="checkbox" name="pkg" value="$PACKAGE"> 1.190 - <a href="$(pkg_info_link $PACKAGE)"><img src="$IMAGES/$image" />$PACKAGE</a></td> 1.191 + <td class="pkg"><input type="checkbox" name="pkg" value="$PACKAGE">$(pkg_info_link $PACKAGE $class)</td> 1.192 <td>$FILE</td> 1.193 </tr> 1.194 EOT 1.195 - done 1.196 + done 1.197 else 1.198 - cat << EOT 1.199 -$(table_head) 1.200 - <tbody> 1.201 -EOT 1.202 - grep -ih $pkg $(repo_list /packages.desc) | \ 1.203 - parse_packages_desc 1.204 + table_head 1.205 + echo " <tbody>" 1.206 + awk -F$'\t' 'BEGIN{IGNORECASE = 1} 1.207 + $1 $4 ~ /'$pkg'/{print $0}' $(repo_list /packages.info) | parse_packages_info 1.208 fi 1.209 cat << EOT 1.210 </tbody> 1.211 @@ -651,11 +660,11 @@ 1.212 sidebar 1.213 if [ -d $INSTALLED/$pkg ]; then 1.214 . $INSTALLED/$pkg/receipt 1.215 - files=$(cat $INSTALLED/$pkg/files.list | wc -l) 1.216 + files=$(wc -l < $INSTALLED/$pkg/files.list) 1.217 action="Remove" 1.218 action_i18n=$(_ 'Remove') 1.219 else 1.220 - cd $PKGS_DB 1.221 + cd $PKGS_DB 1.222 LOADING_MSG=$(_ 'Getting package info...') 1.223 loading_msg 1.224 IFS='|' 1.225 @@ -668,7 +677,7 @@ 1.226 WEB_SITE="$(echo $5)" 1.227 action="Install" 1.228 action_i18n=$(_ 'Install') 1.229 - temp="$(echo $pkg | sed 's/get-//g')" 1.230 + temp="${pkg#get-}" 1.231 fi 1.232 cat << EOT 1.233 <h2>$(_ 'Package %s' $PACKAGE)</h2> 1.234 @@ -698,7 +707,7 @@ 1.235 <a class="button" href='$SCRIPT_NAME?do=Repack&$pkg'>$(_ 'Repack')</a> 1.236 EOT 1.237 fi 1.238 - i18n_desc 1.239 + i18n_desc $pkg 1.240 cat << EOT 1.241 </p> 1.242 </div> 1.243 @@ -725,14 +734,14 @@ 1.244 if [ -n "$DEPENDS" ]; then 1.245 echo "<tr><td><b>$(_ 'Depends')</b></td><td>" 1.246 for i in $DEPENDS; do 1.247 - echo -n "<a href="$(pkg_info_link $i)">$i</a> " 1.248 + pkg_info_link $i 1.249 done 1.250 echo "</td></tr>" 1.251 fi 1.252 if [ -n "$SUGGESTED" ]; then 1.253 echo "<tr><td><b>$(_ 'Suggested')</b></td><td>" 1.254 for i in $SUGGESTED; do 1.255 - echo -n "<a href="$(pkg_info_link $i)">$i</a> " 1.256 + pkg_info_link $i 1.257 done 1.258 echo "</td></tr>" 1.259 fi