tazpanel annotate pkgs.cgi @ rev 111

pkgs.cgi: Fix packages DVD div
author Christophe Lincoln <pankso@slitaz.org>
date Fri Apr 15 10:28:02 2011 +0200 (2011-04-15)
parents b898c9887a62
children dce3e66c3ba4
rev   line source
pankso@7 1 #!/bin/sh
pankso@7 2 #
paul@52 3 # TazPKG CGI interface - Manage packages via a browser
pankso@7 4 #
paul@52 5 # This CGI interface intensively uses tazpkg to manage packages and have
paul@52 6 # its own code for some tasks. Please KISS, it is important and keep speed
pankso@7 7 # in mind. Thanks, Pankso.
pankso@7 8 #
pankso@44 9 # (C) 2011 SliTaz GNU/Linux - GNU gpl v3
pankso@7 10 #
pascal@79 11
pankso@17 12 . lib/libtazpanel
pankso@17 13 get_config
pascal@81 14 header
pankso@7 15
pankso@49 16 # xHTML 5 header with special side bar fo categories.
pankso@34 17 TITLE="- Packages"
pankso@41 18 xhtml_header | sed 's/id="content"/id="content-sidebar"/'
pankso@67 19
pankso@7 20
pankso@7 21 # We need packages information for list and search
pankso@7 22 parse_packages_desc() {
pankso@45 23 IFS="|"
pankso@45 24 cut -f 1,2,3,5 -d "|" | while read PACKAGE VERSION SHORT_DESC WEB_SITE
pankso@7 25 do
pankso@7 26 echo '<tr>'
pankso@46 27 if [ -d $INSTALLED/${PACKAGE% } ]; then
pankso@46 28 echo -e "<td><input type='checkbox' name='pkg' value='$PACKAGE'>\n
pankso@45 29 <a href='$SCRIPT_NAME?info=$PACKAGE'>
pankso@45 30 <img src='$IMAGES/tazpkg-installed.png'/>$PACKAGE</a></td>"
pankso@7 31 else
pankso@46 32 echo -e "<td><input type='checkbox' name='pkg' value='$PACKAGE'>\n
pascal@62 33 <a href='$SCRIPT_NAME?info=$PACKAGE'>
pascal@62 34 <img src='$IMAGES/tazpkg.png'/>$PACKAGE</a></td>"
pankso@7 35 fi
pankso@45 36 echo "<td>$VERSION</td>"
pankso@45 37 echo "<td class='desc'>$SHORT_DESC</td>"
pankso@45 38 echo "<td><a href='$WEB_SITE'>web</a></td>"
pankso@7 39 echo '</tr>'
pankso@7 40 done
pankso@45 41 unset IFS
pankso@7 42 }
pankso@7 43
pankso@7 44 # Display a full summary of packages stats
pankso@7 45 packages_summary() {
pankso@37 46 gettext "Last recharge : "
pankso@37 47 stat=`stat -c %y $LOCALSTATE/packages.list | \
pankso@37 48 sed 's/\(:..\):.*/\1/' | awk '{print $1}'`
pankso@37 49 mtime=`find /var/lib/tazpkg/packages.list -mtime +10`
pankso@37 50 echo -n "$stat "
pankso@37 51 if [ "$mtime" ]; then
pankso@37 52 echo "(Older than 10 days)"
pankso@37 53 else
pankso@37 54 echo "(Not older than 10 days)"
pankso@37 55 fi
pankso@8 56 gettext "Installed packages : "
pankso@7 57 ls $INSTALLED | wc -l
pankso@8 58 gettext "Mirrored packages : "
pankso@7 59 cat $LOCALSTATE/packages.list | wc -l
pankso@49 60 gettext "Upgradeable packages : "
pankso@47 61 cat $LOCALSTATE/packages.up | wc -l
pankso@44 62 #gettext "Installed files : "
pankso@44 63 #cat $INSTALLED/*/files.list | wc -l
pankso@8 64 gettext "Blocked packages : "
pankso@8 65 cat $LOCALSTATE/blocked-packages.list | wc -l
pankso@7 66 }
pankso@7 67
pankso@10 68 # Parse mirrors list to be able to have an icon an remove link
pankso@10 69 list_mirrors() {
pankso@10 70 cat $LOCALSTATE/mirrors | while read line
pankso@10 71 do
pankso@10 72 cat << EOT
pankso@10 73 <li><a href="$SCRIPT_NAME?config=rm-mirror=$line"><img
pankso@10 74 src="$IMAGES/clear.png" /></a><a href="$line">$line</a></li>
pankso@10 75 EOT
pankso@10 76 done
pankso@10 77 }
pankso@10 78
pankso@7 79 #
pankso@7 80 # xHTML functions
pankso@7 81 #
pankso@7 82
pankso@17 83 # ENTER will search but user may search for a button, so put one.
pankso@9 84 search_form() {
pankso@9 85 cat << EOT
pankso@9 86 <div class="search">
pankso@17 87 <form method="get" action="$SCRIPT_NAME">
pankso@17 88 <p>
pankso@17 89 <input type="text" name="search" size="20">
pankso@17 90 <input type="submit" value="`gettext "Search"`">
pankso@80 91 <input class="radius" type="submit" name="files"
pankso@80 92 value="`gettext "files"`">
pankso@17 93 </p>
pankso@17 94 </form>
pankso@9 95 </div>
pankso@9 96 EOT
pankso@9 97 }
pankso@9 98
pankso@17 99 table_head() {
pankso@7 100 cat << EOT
pankso@7 101 <tr id="thead">
pankso@7 102 <td>`gettext "Name"`</td>
pankso@7 103 <td>`gettext "Version"`</td>
pankso@7 104 <td>`gettext "Description"`</td>
pankso@7 105 <td>`gettext "Web"`</td>
pankso@7 106 </tr>
pankso@7 107 EOT
pankso@7 108 }
pankso@7 109
pankso@41 110 sidebar() {
pankso@7 111 cat << EOT
pankso@41 112 <div id="sidebar">
pankso@41 113 <h4>Categories</h4>
pankso@41 114 <a class="active_base-system" href="$SCRIPT_NAME?cat=base-system">Base-system</a>
pankso@41 115 <a class="active_x-window" href="$SCRIPT_NAME?cat=x-window">X window</a>
pankso@41 116 <a class="active_utilities" href="$SCRIPT_NAME?cat=utilities">Utilities</a>
pankso@41 117 <a class="active_network" href="$SCRIPT_NAME?cat=network">Network</a>
pankso@41 118 <a class="active_games" href="$SCRIPT_NAME?cat=games">Games</a>
pankso@41 119 <a class="active_graphics" href="$SCRIPT_NAME?cat=graphics">Graphics</a>
pankso@41 120 <a class="active_office" href="$SCRIPT_NAME?cat=office">Office</a>
pankso@41 121 <a class="active_multimedia" href="$SCRIPT_NAME?cat=multimedia">Multimedia</a>
pankso@41 122 <a class="active_developement" href="$SCRIPT_NAME?cat=development">Development</a>
pankso@41 123 <a class="active_system-tools" href="$SCRIPT_NAME?cat=system-tools">System tools</a>
pankso@41 124 <a class="active_security" href="$SCRIPT_NAME?cat=security">Security</a>
pankso@41 125 <a class="active_misc" href="$SCRIPT_NAME?cat=misc">Misc</a>
pankso@41 126 <a class="active_meta" href="$SCRIPT_NAME?cat=meta">Meta</a>
pankso@41 127 <a class="active_non-free" href="$SCRIPT_NAME?cat=non-free">Non free</a>
pascal@93 128 <a class="active_all" href="$SCRIPT_NAME?cat=all">All</a>
pankso@9 129 </div>
pankso@7 130 EOT
pankso@7 131 }
pankso@7 132
pankso@45 133 #
pankso@45 134 # Commands
pankso@45 135 #
pankso@45 136
pascal@81 137 case " $(GET) " in
pascal@81 138 *\ list\ *)
pankso@45 139 #
pankso@45 140 # List installed packages. This is the default because parsing
pankso@45 141 # the full packages.desc can be long and take some resources
pankso@45 142 #
pankso@45 143 cd $INSTALLED
pankso@45 144 search_form
pankso@45 145 sidebar
pankso@45 146 LOADING_MSG="Listing packages..."
pankso@45 147 loading_msg
pankso@45 148 cat << EOT
pankso@45 149 <h2>`gettext "My packages"`</h2>
pankso@45 150 <form method='get' action='$SCRIPT_NAME'>
pankso@45 151 <div id="actions">
pankso@46 152 <div class="float-left">
pankso@46 153 `gettext "Selection:"`
pankso@46 154 <input type="submit" name="do" value="Remove" />
pankso@46 155 </div>
pankso@46 156 <div class="float-right">
pankso@46 157 `gettext "List:"`
pankso@46 158 <input type="submit" name="recharge" value="Recharge" />
pankso@47 159 <input type="submit" name="up" value="Upgrade" />
pankso@46 160 </div>
pankso@41 161 </div>
pankso@7 162 EOT
pankso@7 163 table_start
pankso@41 164 table_head
pankso@7 165 for pkg in *
pankso@7 166 do
pankso@7 167 . $pkg/receipt
pankso@7 168 echo '<tr>'
pankso@7 169 # Use default tazpkg icon since all packages displayed are
pankso@7 170 # installed
pascal@92 171 colorpkg=$pkg
pascal@92 172 grep -qs "^$pkg$" $LOCALSTATE/blocked-packages.list &&
pascal@92 173 colorpkg="<span style='color: red;'>$pkg</span>"
pankso@7 174 echo "<td class='pkg'>
pankso@7 175 <input type='checkbox' name='pkg' value=\"$pkg\" />
pankso@7 176 <a href='$SCRIPT_NAME?info=$pkg'><img
pascal@92 177 src='$IMAGES/tazpkg-installed.png'/>$colorpkg</a></td>"
pankso@7 178 echo "<td>$VERSION</td>"
pankso@7 179 echo "<td class='desc'>$SHORT_DESC</td>"
pankso@7 180 echo "<td><a href='$WEB_SITE'>web</a></td>"
pankso@7 181 echo '</tr>'
pankso@7 182 done
pankso@7 183 table_end
pankso@7 184 echo '</form>' ;;
pascal@81 185 *\ cat\ *)
pankso@45 186 #
pankso@41 187 # List all available packages by category on mirror. Listing all
paul@52 188 # packages is too resource intensive and not useful.
pankso@45 189 #
pankso@9 190 cd $LOCALSTATE
pascal@81 191 category=$(GET cat)
pascal@81 192 [ "$category" == "cat" ] && category="base-system"
pascal@93 193 grep_category=$category
pascal@93 194 [ "$grep_category" == "all" ] && grep_category=".*"
pankso@9 195 search_form
pankso@41 196 sidebar | sed s/"active_${category}"/"active"/
pankso@45 197 LOADING_MSG="Listing packages..."
pankso@45 198 loading_msg
pankso@9 199 cat << EOT
pankso@41 200 <h2>`gettext "Category:"` $category</h2>
pankso@9 201 <form method='get' action='$SCRIPT_NAME'>
pankso@9 202 <div id="actions">
pankso@45 203 <div class="float-left">
pankso@45 204 `gettext "Selection:"`
pankso@45 205 <input type="submit" name="do" value="Install" />
pankso@45 206 <input type="submit" name="do" value="Remove" />
pankso@45 207 </div>
pankso@45 208 <div class="float-right">
pankso@45 209 `gettext "List:"`
pankso@45 210 <input type="submit" name="recharge" value="Recharge" />
pankso@47 211 <input type="submit" name="up" value="Upgrade" />
pankso@45 212 <a class="button" href='$SCRIPT_NAME?list'>
pankso@45 213 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@45 214 </div>
pankso@9 215 EOT
pankso@9 216 echo '</div>'
pankso@7 217 table_start
pankso@17 218 table_head
pascal@93 219 grep "| $grep_category |" packages.desc | parse_packages_desc
pankso@7 220 table_end
pankso@7 221 echo '</form>' ;;
pascal@81 222 *\ search\ *)
pankso@45 223 #
pankso@63 224 # Search for packages. Here default is to search in packages.desc
pankso@63 225 # and so get result including packages names and descriptions
pankso@45 226 #
pascal@81 227 pkg=$(GET search)
pankso@9 228 cd $LOCALSTATE
pankso@9 229 search_form
pankso@41 230 sidebar
pankso@45 231 LOADING_MSG="Searching packages..."
pankso@45 232 loading_msg
pankso@7 233 cat << EOT
pankso@17 234 <h2>`gettext "Search packages"`</h2>
pankso@7 235 <form method="get" action="$SCRIPT_NAME">
pankso@9 236 <div id="actions">
pankso@45 237 <div class="float-left">
pankso@45 238 `gettext "Selection:"`
pankso@45 239 <input type="submit" name="do" value="Install" />
pankso@45 240 <input type="submit" name="do" value="Remove" />
pankso@45 241 <a href="`cat $PANEL/lib/checkbox.js`">`gettext "Toogle all"`</a>
pankso@45 242 </div>
pankso@45 243 <div class="float-right">
pankso@45 244 `gettext "List:"`
pankso@45 245 <input type="submit" name="recharge" value="Recharge" />
pankso@47 246 <input type="submit" name="up" value="Upgrade" />
pankso@45 247 <a class="button" href='$SCRIPT_NAME?list'>
pankso@45 248 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@45 249 </div>
pankso@7 250 EOT
pankso@9 251 echo '</div>'
pankso@7 252 table_start
pascal@79 253 if [ "$(GET files)" ]; then
pascal@79 254 cat <<EOT
pascal@79 255 <tr id="thead">
pascal@79 256 <td>`gettext "Package"`</td>
pascal@79 257 <td>`gettext "File"`</td>
pascal@79 258 </tr>
pascal@83 259 $(unlzma -c files.list.lzma | grep -Ei ": .*$(GET search)" | \
pascal@84 260 while read PACKAGE FILE; do
pascal@84 261 PACKAGE=${PACKAGE%:}
pascal@84 262 image=tazpkg-installed.png
pascal@84 263 [ -d $INSTALLED/$PACKAGE ] || image=tazpkg.png
pascal@84 264 echo "<tr>
pascal@85 265 <td><input type='checkbox' name='pkg' value='$PACKAGE'>
pascal@85 266 <a href='$SCRIPT_NAME?info=$PACKAGE'><img src='$IMAGES/$image' />$PACKAGE</a></td>
pascal@84 267 <td>$FILE</td>
pascal@84 268 </tr>"
pascal@84 269 done)
pascal@79 270 EOT
pascal@79 271 else
pascal@79 272 table_head
pascal@79 273 grep -i $pkg packages.desc | parse_packages_desc
pascal@79 274 fi
pankso@7 275 table_end
pankso@7 276 echo '</form>' ;;
pascal@81 277 *\ recharge\ *)
pankso@45 278 #
pankso@7 279 # Let recharge the packages list
pankso@45 280 #
pankso@9 281 search_form
pankso@41 282 sidebar
pankso@45 283 LOADING_MSG="Recharging lists..."
pankso@45 284 loading_msg
pankso@8 285 cat << EOT
pankso@9 286 <h2>`gettext "Recharge"`</h2>
pankso@9 287 <form method='get' action='$SCRIPT_NAME'>
pankso@9 288 <div id="actions">
pankso@41 289 <div class="float-left">
pankso@41 290 <p>
pankso@45 291 `gettext "Recharge checks for new or updated packages"`
pankso@41 292 </p>
pankso@41 293 </div>
pankso@41 294 <div class="float-right">
pankso@41 295 <p>
pankso@47 296 <a class="button" href='$SCRIPT_NAME?up'>
pankso@45 297 `gettext "Check upgrade"`</a>
pankso@41 298 <a class="button" href='$SCRIPT_NAME?list'>
pankso@41 299 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@41 300 </p>
pankso@41 301 </div>
pankso@41 302 </div>
pankso@22 303 <pre>
pankso@8 304 EOT
pankso@94 305 gettext "Recharging packages list" | log
pascal@99 306 tazpkg recharge | filter_taztools_msgs
pankso@45 307 cat << EOT
pankso@45 308 </pre>
pankso@45 309 <p>
paul@52 310 `gettext "Packages lists are up-to-date. You should check for upgrades now."`
pankso@45 311 </p>
pankso@45 312 EOT
pankso@45 313 ;;
pascal@81 314 *\ up\ *)
pankso@45 315 #
pankso@45 316 # Ugrade packages
pankso@45 317 #
pankso@9 318 cd $LOCALSTATE
pankso@9 319 search_form
pankso@41 320 sidebar
paul@52 321 LOADING_MSG="Checking for upgrades..."
pankso@45 322 loading_msg
pankso@8 323 cat << EOT
paul@52 324 <h2>`gettext "Up packages"`</h2>
pankso@8 325 <form method="get" action="$SCRIPT_NAME">
pankso@9 326 <div id="actions">
pankso@47 327 <div class="float-left">
pankso@47 328 `gettext "Selection:"`
pankso@47 329 <input type="submit" name="do" value="Install" />
pankso@47 330 <input type="submit" name="do" value="Remove" />
pankso@47 331 <a href="`cat $PANEL/lib/checkbox.js`">`gettext "Toogle all"`</a>
pankso@47 332 </div>
pankso@47 333 <div class="float-right">
pankso@47 334 `gettext "List:"`
pankso@47 335 <input type="submit" name="recharge" value="Recharge" />
pankso@47 336 <a class="button" href='$SCRIPT_NAME?list'>
pankso@47 337 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@47 338 </div>
pankso@45 339 </div>
pankso@8 340 EOT
pankso@47 341 tazpkg up --check >/dev/null
pankso@8 342 table_start
pankso@17 343 table_head
pankso@47 344 for pkg in `cat packages.up`
pankso@8 345 do
pankso@8 346 grep "^$pkg |" $LOCALSTATE/packages.desc | parse_packages_desc
pankso@8 347 done
pankso@8 348 table_end
pankso@8 349 echo '</form>' ;;
pascal@81 350 *\ do\ *)
pankso@45 351 #
pankso@7 352 # Do an action on one or some packages
pankso@45 353 #
pascal@92 354 opt=""
pascal@81 355 pkgs=""
pankso@87 356 cmdline=`echo ${QUERY_STRING#do=} | sed s'/&/ /g'`
pankso@87 357 cmd=`echo ${cmdline} | awk '{print $1}'`
pankso@87 358 pkgs=`echo $cmdline | sed -e s'/+/ /g' -e s'/pkg=//g' -e s/$cmd//`
pascal@92 359 cmd=`echo $cmd | tr [A-Z] [a-z]`
pankso@87 360 case $cmd in
pascal@92 361 install)
pankso@41 362 cmd=get-install opt=--forced ;;
pankso@41 363 esac
pankso@9 364 search_form
pankso@41 365 sidebar
pankso@45 366 LOADING_MSG="${cmd}ing packages..."
pankso@45 367 loading_msg
pankso@9 368 cat << EOT
pankso@9 369 <h2>Tazpkg: $cmd</h2>
pankso@9 370 <form method="get" action="$SCRIPT_NAME">
pankso@9 371 <div id="actions">
pankso@41 372 <div class="float-left">
pankso@41 373 <p>
paul@52 374 `gettext "Performing tasks on packages"`
pankso@41 375 </p>
pankso@41 376 </div>
pankso@41 377 <div class="float-right">
pankso@41 378 <p>
pankso@41 379 <a class="button" href='$SCRIPT_NAME?list'>
pankso@41 380 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@41 381 </p>
pankso@41 382 </div>
pankso@41 383 </div>
pankso@9 384 EOT
pankso@45 385 echo '<div class="box">'
pankso@10 386 gettext "Executing $cmd for:$pkgs"
pankso@45 387 echo '</div>'
pankso@7 388 for pkg in $pkgs
pankso@7 389 do
pankso@10 390 echo '<pre>'
pascal@99 391 echo 'y' | tazpkg $cmd $pkg $opt 2>/dev/null | filter_taztools_msgs
pankso@7 392 echo '</pre>'
pankso@7 393 done ;;
pascal@81 394 *\ info\ *)
pankso@45 395 #
pankso@45 396 # Packages info
pankso@45 397 #
pascal@81 398 pkg=$(GET info)
pankso@9 399 search_form
pankso@41 400 sidebar
pascal@62 401 if [ -d $INSTALLED/$pkg ]; then
pascal@62 402 . $INSTALLED/$pkg/receipt
pascal@62 403 files=`cat $INSTALLED/$pkg/files.list | wc -l`
pankso@64 404 action=$(gettext "Remove")
pascal@62 405 else
pascal@62 406 cd $LOCALSTATE
pankso@64 407 LOADING_MSG=$(gettext "Getting package info...")
pankso@64 408 loading_msg
pascal@62 409 IFS='|'
pascal@62 410 set -- $(grep "^$pkg |" packages.desc)
pascal@62 411 unset IFS
pascal@62 412 PACKAGE=$1
pascal@62 413 VERSION="$(echo $2)"
pascal@62 414 SHORT_DESC="$(echo $3)"
pascal@62 415 CATEGORY="$(echo $4)"
pascal@62 416 WEB_SITE="$(echo $5)"
pankso@64 417 action=$(gettext "Install")
pascal@62 418 fi
pankso@7 419 cat << EOT
pankso@41 420 <h2>`gettext "Package"` $PACKAGE</h2>
pankso@9 421 <div id="actions">
pankso@41 422 <div class="float-left">
pankso@41 423 <p>
pankso@64 424 <a class="button" href='$SCRIPT_NAME?do=$action&$pkg'>$action</a>
pascal@92 425 EOT
pascal@92 426 if [ -d $INSTALLED/$pkg ]; then
pascal@92 427 if grep -qs "^$pkg$" $LOCALSTATE/blocked-packages.list; then
pascal@92 428 block=$(gettext "Unblock")
pascal@92 429 else
pascal@92 430 block=$(gettext "Block")
pascal@92 431 fi
pascal@92 432 cat << EOT
pascal@92 433 <a class="button" href='$SCRIPT_NAME?do=$block&$pkg'>$block</a>
pascal@92 434 <a class="button" href='$SCRIPT_NAME?do=Repack&$pkg'>Repack</a>
pascal@92 435 EOT
pascal@92 436 fi
pascal@92 437 cat << EOT
pankso@41 438 </p>
pankso@41 439 </div>
pankso@41 440 <div class="float-right">
pankso@41 441 <p>
pankso@41 442 <a class="button" href='$SCRIPT_NAME?list'>
pankso@41 443 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@41 444 </p>
pankso@41 445 </div>
pankso@9 446 </div>
pankso@22 447 <pre>
pankso@7 448 Name : $PACKAGE
pankso@7 449 Version : $VERSION
pankso@7 450 Description : $SHORT_DESC
pankso@41 451 Category : $CATEGORY
pascal@62 452 EOT
pascal@62 453 if [ -d $INSTALLED/$pkg ]; then
pascal@62 454 cat << EOT
pankso@10 455 Maintainer : $MAINTAINER
pankso@7 456 Website : <a href="$WEB_SITE">$WEB_SITE</a>
pankso@7 457 Sizes : $PACKED_SIZE/$UNPACKED_SIZE
pascal@92 458 EOT
pascal@92 459 if [ -n "$DEPENDS" ]; then
pascal@92 460 echo -n "Depends : "
pascal@92 461 for i in $DEPENDS; do
pascal@92 462 echo -n "<a href="$SCRIPT_NAME?info=$i">$i</a> "
pascal@92 463 done
pascal@92 464 echo ""
pascal@92 465 fi
pascal@92 466 if [ -n "$SUGGESTED" ]; then
pascal@92 467 echo -n "Suggested : "
pascal@92 468 for i in $SUGGESTED; do
pascal@92 469 echo -n "<a href="$SCRIPT_NAME?info=$i">$i</a> "
pascal@92 470 done
pascal@92 471 echo ""
pascal@92 472 fi
pascal@92 473 [ -n "$TAGS" ] && echo "Tags : $TAGS"
pascal@92 474 cat << EOT
pankso@7 475 </pre>
pankso@7 476
pankso@41 477 <p>`gettext "Installed files:"` `cat $INSTALLED/$pkg/files.list | wc -l`</p>
pankso@7 478 <pre>
pankso@7 479 `cat $INSTALLED/$pkg/files.list`
pankso@7 480 </pre>
pankso@7 481 EOT
pascal@62 482 else
pascal@62 483 cat << EOT
pascal@62 484 Website : <a href="$WEB_SITE">$WEB_SITE</a>
pascal@62 485 Sizes : `grep -A 3 ^$pkg$ packages.txt | tail -n 1 | sed 's/ *//'`
pascal@62 486 </pre>
pascal@62 487
pascal@62 488 <p>`gettext "Installed files:"`</p>
pascal@62 489 <pre>
pascal@62 490 `unlzma -c files.list.lzma | sed "/^$pkg: /!d;s/^$pkg: //"`
pascal@62 491 </pre>
pascal@62 492 EOT
pascal@62 493 fi
pankso@7 494 ;;
pankso@95 495 *\ admin\ * )
pankso@45 496 #
pankso@10 497 # Tazpkg configuration page
pankso@45 498 #
pankso@95 499 cmd=$(GET admin)
pankso@10 500 case "$cmd" in
pankso@10 501 clean)
pankso@10 502 rm -rf /var/cache/tazpkg/* ;;
pascal@81 503 add-mirror)
pankso@10 504 # Decode url
pascal@81 505 mirror=$(GET mirror)
pascal@81 506 case "$mirror" in
pascal@81 507 http://*|ftp://*)
pascal@81 508 echo "$mirror" >> $LOCALSTATE/mirrors ;;
pascal@81 509 esac ;;
pankso@10 510 rm-mirror=http://*|rm-mirror=ftp://*)
pascal@81 511 mirror=${cmd#rm-mirror=}
pankso@10 512 sed -i -e "s@$mirror@@" -e '/^$/d' $LOCALSTATE/mirrors ;;
pankso@10 513 esac
pankso@10 514 cache_files=`find /var/cache/tazpkg -name *.tazpkg | wc -l`
pankso@10 515 cache_size=`du -sh /var/cache/tazpkg`
pankso@41 516 sidebar
pankso@10 517 cat << EOT
pankso@95 518 <h2>$(gettext "Administration")</h2>
pankso@10 519 <div>
pankso@95 520 <p>$(gettext "Tazpkg administration and settings")</p>
pankso@10 521 </div>
pankso@95 522 <div id="actions">
pankso@95 523 <a class="button" href='$SCRIPT_NAME?admin=&action=saveconf'>
pankso@95 524 <img src="$IMAGES/tazpkg.png" />`gettext "Save configuration"`</a>
pankso@95 525 <a class="button" href='$SCRIPT_NAME?admin=&action=listconf'>
pankso@95 526 <img src="$IMAGES/edit.png" />`gettext "List configuration files"`</a>
pankso@95 527 <a class="button" href='$SCRIPT_NAME?admin=&action=quickcheck'>
pankso@95 528 <img src="$IMAGES/recharge.png" />`gettext "Quick check"`</a>
pankso@95 529 <a class="button" href='$SCRIPT_NAME?admin=&action=fullcheck'>
pankso@95 530 <img src="$IMAGES/recharge.png" />`gettext "Full check"`</a>
pankso@95 531 </div>
pankso@95 532 EOT
pankso@95 533 case "$(GET action)" in
pankso@95 534 saveconf)
pankso@95 535 LOADING_MSG=$(gettext "Creating the package...")
pankso@95 536 loading_msg
pankso@95 537 echo "<pre>"
pankso@95 538 cd $HOME
pascal@99 539 tazpkg repack-config | filter_taztools_msgs
pankso@95 540 gettext "Path : " && ls $HOME/config-*.tazpkg
pankso@95 541 echo "</pre>" ;;
pankso@95 542 listconf)
pankso@95 543 echo "<h4>`gettext "Configuration files"`</h4>"
pankso@95 544 echo "<ul>"
pascal@102 545 tazpkg list-config | while read file; do
pascal@102 546 [ "${file:0:1}" == "/" ] || continue
pascal@102 547 if [ -e $file ]; then
pascal@102 548 echo "<li><a href=\"index.cgi?file=$file\">$file</a></li>"
pascal@102 549 else
pascal@102 550 echo "<li>$file</li>"
pascal@102 551 fi
pascal@102 552 done
pankso@95 553 echo "</ul>"
pankso@95 554 echo "</pre>" ;;
pankso@95 555 quickcheck)
pankso@95 556 LOADING_MSG=$(gettext "Checking packages consitency...")
pankso@95 557 loading_msg
pankso@95 558 echo "<pre>"
pankso@95 559 tazpkg check
pankso@95 560 echo "</pre>" ;;
pankso@95 561 fullcheck)
pankso@95 562 LOADING_MSG=$(gettext "Full packages check...")
pankso@95 563 loading_msg
pankso@95 564 echo "<pre>"
pankso@95 565 tazpkg check --full
pankso@95 566 echo "</pre>" ;;
pankso@95 567 esac
pankso@95 568 cat << EOT
pankso@95 569 <h3>$(gettext "Packages cache")</h3>
pankso@10 570 <div>
pankso@10 571 <form method="get" action="$SCRIPT_NAME">
pankso@17 572 <p>
pankso@17 573 `gettext "Packages in the cache:"` $cache_files ($cache_size)
pankso@98 574 <input type="hidden" name="admin" value="clean" />
pankso@17 575 <input type="submit" value="Clean" />
pankso@17 576 </p>
pankso@10 577 </form>
pankso@10 578 </div>
pankso@17 579
pankso@10 580 <h3>`gettext "Current mirror list"`</h3>
pankso@10 581 <div class="box">
pankso@10 582 <ul>
pankso@10 583 `list_mirrors`
pankso@10 584 </ul>
pankso@10 585 </div>
pankso@10 586 <form method="get" action="$SCRIPT_NAME">
pankso@10 587 <p>
pankso@10 588 <input type="hidden" name="config" value="add-mirror" />
pankso@10 589 <input type="text" name="mirror" size="60">
pankso@10 590 <input type="submit" value="Add mirror" />
pankso@10 591 </p>
pankso@10 592 </form>
pankso@10 593 EOT
pascal@101 594 version=$(cat /etc/slitaz-release)
pascal@101 595 cat << EOT
pascal@101 596
pankso@111 597 <a name="dvd"></a>
pascal@101 598 <h3>`gettext "SliTaz packages DVD"`</h3>
pascal@101 599 <p>
pascal@101 600 $(gettext "A bootable DVD image of all available packages for \
pascal@101 601 the $version version is generated every day. It also contains a copy of \
pascal@101 602 the website and can be used without an internet connection. This image can be \
pascal@101 603 installed on a DVD or an USB key.")
pascal@101 604 </p>
pankso@111 605 <div>
pankso@111 606 <form method="post" action='$SCRIPT_NAME?admin&action=dvdimage#dvd'>
pankso@111 607 <p>
pankso@111 608 <a class="button"
pankso@111 609 href='http://mirror.slitaz.org/iso/$version/packages-$version.iso'>
pankso@111 610 <img src="$IMAGES/tazpkg.png" />$(gettext "Download DVD image")</a>
pankso@111 611 <a class="button" href='$SCRIPT_NAME?admin&action=dvdusbkey#dvd'>
pankso@111 612 <img src="$IMAGES/tazpkg.png" />$(gettext "Install to DVD/USB key")</a>
pankso@111 613 </p>
pankso@111 614 <div class="box">
pankso@111 615 $(gettext "ISO image path: ")
pankso@111 616 <input type="text" name="dvdimage" size="40" value="/root/packages-$version.iso">
pankso@111 617 </div>
pascal@101 618 </form>
pascal@101 619 </div>
pascal@101 620 EOT
pascal@101 621 if [ "$(GET action)" == "dvdimage" ]; then
pascal@101 622 dev=$(POST dvdimage)
pascal@101 623 mkdir -p /mnt/packages 2> /dev/null
pascal@101 624 echo "<pre>"
pascal@101 625 mount -t iso9660 -o loop,ro $dev /mnt/packages &&
pascal@101 626 /mnt/packages/install.sh &&
pascal@101 627 echo "$dev is installed on /mnt/packages"
pascal@101 628 echo "</pre>"
pascal@101 629 fi
pascal@101 630 if [ "$(GET action)" == "dvdusbkey" ]; then
pascal@101 631 mkdir -p /mnt/packages 2> /dev/null
pascal@101 632 for tag in "LABEL=\"packages-$version\" TYPE=\"iso9660\"" \
pascal@101 633 "LABEL=\"sources-$version\" TYPE=\"iso9660\"" ; do
pascal@101 634 dev=$(blkid | grep "$tag" | cut -d: -f1)
pascal@101 635 [ -n "$dev" ] || continue
pascal@101 636 echo "<pre>"
pascal@101 637 mount -t iso9660 -o ro $dev /mnt/packages &&
pascal@101 638 /mnt/packages/install.sh &&
pascal@101 639 echo "$dev is installed on /mnt/packages"
pascal@101 640 echo "</pre>"
pascal@101 641 break
pascal@101 642 done
pascal@101 643 fi
pankso@10 644 ;;
pankso@7 645 *)
pankso@14 646 #
pankso@7 647 # Default to summary
pankso@14 648 #
pankso@10 649 search_form
pankso@41 650 sidebar
pascal@92 651 [ -n "$(GET block)" ] && tazpkg block $(GET block)
pascal@92 652 [ -n "$(GET unblock)" ] && tazpkg unblock $(GET unblock)
pankso@7 653 cat << EOT
pankso@9 654 <h2>`gettext "Summary"`</h2>
pankso@9 655 <div id="actions">
pankso@45 656 <a class="button" href='$SCRIPT_NAME?list'>
pankso@45 657 <img src="$IMAGES/tazpkg.png" />`gettext "My packages"`</a>
pankso@45 658 <a class="button" href='$SCRIPT_NAME?recharge'>
pankso@45 659 <img src="$IMAGES/recharge.png" />`gettext "Recharge list"`</a>
pankso@47 660 <a class="button" href='$SCRIPT_NAME?up'>
pankso@45 661 <img src="$IMAGES/update.png" />`gettext "Check upgrade"`</a>
pankso@95 662 <a class="button" href='$SCRIPT_NAME?admin'>
pankso@95 663 <img src="$IMAGES/edit.png" />`gettext "Administration"`</a>
pankso@9 664 </div>
pankso@41 665 <pre class="pre-main">
pankso@7 666 `packages_summary`
pankso@7 667 </pre>
pankso@41 668
pankso@10 669 <h3>`gettext "Latest log entries"`</h3>
pankso@10 670 <pre>
pankso@45 671 `tail -n 5 /var/log/tazpkg.log | fgrep "-" | \
pankso@10 672 awk '{print $1, $2, $3, $4, $5, $6, $7}'`
pankso@10 673 </pre>
pankso@7 674 EOT
pankso@10 675 ;;
pankso@7 676 esac
pankso@7 677
pankso@7 678 # xHTML 5 footer
pankso@33 679 xhtml_footer
pankso@7 680 exit 0