# HG changeset patch # User Christophe Lincoln # Date 1301960536 -7200 # Node ID 2274e489400c7488eeb2f4cd20d3b6b4006fd4bd # Parent c630f623ac7cf4a5453da88518c4f61bd1fba42c Rename tazpkg.cgi to pkgs.cgi diff -r c630f623ac7c -r 2274e489400c Makefile --- a/Makefile Tue Apr 05 01:34:37 2011 +0200 +++ b/Makefile Tue Apr 05 01:42:16 2011 +0200 @@ -11,12 +11,15 @@ # i18n pot: - xgettext -o po/tazpkg-cgi/tazpkg-cgi.pot -L Shell \ - --package-name="Tazpkg CGI" \ + xgettext -o po/tazpanel-pkgs/tazpanel-pkgs.pot -L Shell \ + --package-name="Tazpanel pkgs CGI" \ --package-version="$(VERSION)" ./tazpkg.cgi xgettext -o po/tazpanel/tazpanel.pot -L Shell \ --package-name="TazPanel cmdline" \ --package-version="$(VERSION)" ./tazpanel + xgettext -o po/tazpanel-cgi/tazpanel-cgi.pot -L Shell \ + --package-name="TazPanel CGI" \ + --package-version="$(VERSION)" ./index.cgi msgmerge: @for l in $(LINGUAS); do \ diff -r c630f623ac7c -r 2274e489400c pkgs.cgi --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkgs.cgi Tue Apr 05 01:42:16 2011 +0200 @@ -0,0 +1,400 @@ +#!/bin/sh +# +# TazPKG CGI interface - Manage packages via the a browse +# +# This CGI interface intensively use tazpkg to manage package and have +# it how code for some tasks. Please KISS it important and keep speed +# in mind. Thanks, Pankso. +# +# (C) 2011 SliTaz GNU/Linux - GNU gpl v2 +# +echo "Content-Type: text/html" +echo "" + +. lib/libtazpanel +get_config + +# Include gettext helper script. +. /usr/bin/gettext.sh + +# Export package name for gettext. +TEXTDOMAIN='tazpanel-pkgs' +export TEXTDOMAIN + +# xHTML 5 header +cat $HEADER | sed s'/%TITLE%/Tazpkg/' + +# DEBUG mode +if [ $DEBUG == "1" ]; then + echo "

$REQUEST_METHOD ${QUERY_STRING}

" +fi + +# We need packages information for list and search +parse_packages_desc() { +while read line + do + echo '' + pkg=$(echo $line | cut -d "|" -f 1) + vers=$(echo $line | cut -d "|" -f 2) + desc=$(echo $line | cut -d "|" -f 3) + web=$(echo $line | cut -d "|" -f 5) + if [ -d $INSTALLED/$pkg ]; then + echo -e "\n + $pkg" + else + echo -e "\n + $pkg" + fi + echo "$vers" + echo "$desc" + echo "web" + echo '' + done +} + +# Remove status and ESC char from tazpkg commands output +filter_tazpkg_msgs() { + grep ^[a-zA-Z0-9] | sed s'/\.*\]//' +} + +# Display a full summary of packages stats +packages_summary() { + gettext "Installed packages : " + ls $INSTALLED | wc -l + gettext "Mirrored packages : " + cat $LOCALSTATE/packages.list | wc -l + gettext "Last recharge : " + stat -c %y $LOCALSTATE/packages.list | sed 's/\(:..\):.*/\1/' + gettext "Upgradeable packages : " + cat $LOCALSTATE/upgradeable-packages.list | wc -l + gettext "Installed files : " + cat $INSTALLED/*/files.list | wc -l + gettext "Blocked packages : " + cat $LOCALSTATE/blocked-packages.list | wc -l +} + +# Parse mirrors list to be able to have an icon an remove link +list_mirrors() { + cat $LOCALSTATE/mirrors | while read line + do + cat << EOT +
  • $line
  • +EOT + done +} + +# +# xHTML functions +# + +# ENTER will search but user may search for a button, so put one. +search_form() { + cat << EOT + +EOT +} + +table_head() { + cat << EOT + + `gettext "Name"` + `gettext "Version"` + `gettext "Description"` + `gettext "Web"` + +EOT +} + +sub_block() { + cat << EOT +
    + `gettext "My packages"` | + `gettext "All packages"` | + `gettext "Recharge list"` | + `gettext "Upgrade"` | + `gettext "Configuration"` +
    +EOT +} + +# For my packages list +list_actions() { + cat << EOT +

    + `gettext "Selection:"` + +

    +EOT +} + +# For list-all +list_all_actions() { + cat << EOT +

    + `gettext "Selection:"` + + +

    +EOT +} + +# For search and upgrade with JS function to toogle all pkgs +list_full_actions() { + cat << EOT +

    + `gettext "Selection:"` + + + `gettext "Toogle all"` +

    +EOT +} + +# +# Commands +# + +case "$QUERY_STRING" in + list) + # List installed packages. This is the default because parsing + # the full packages.desc can be long and take some resources + cd $INSTALLED + search_form + sub_block + cat << EOT +

    `gettext "My packages"`

    +
    +
    +EOT + list_actions + echo '
    ' + table_start + for pkg in * + do + . $pkg/receipt + echo '' + # Use default tazpkg icon since all packages displayed are + # installed + echo " + + $pkg" + echo "$VERSION" + echo "$SHORT_DESC" + echo "web" + echo '' + done + table_end + list_actions + echo '
    ' ;; + list-all) + # List all available packages on mirror + cd $LOCALSTATE + search_form + sub_block + cat << EOT +

    `gettext "All packages"`

    +
    +
    +EOT + list_all_actions + echo '
    ' + table_start + table_head + cat packages.desc | parse_packages_desc + table_end + list_all_actions + echo '
    ' ;; + search=*) + # Search for packages + pkg=${QUERY_STRING#*=} + cd $LOCALSTATE + search_form + sub_block + cat << EOT +

    `gettext "Search packages"`

    +
    +
    +EOT + list_full_actions + echo '
    ' + table_start + table_head + grep $pkg packages.desc | parse_packages_desc + table_end + echo '
    ' ;; + recharge) + # Let recharge the packages list + search_form + sub_block + cat << EOT +

    `gettext "Recharge"`

    +
    +
    +

    + `gettext "Recharge will check for new or updated packages... + please wait"` +

    +
    +
    +EOT
    +		tazpkg recharge | filter_tazpkg_msgs
    +		echo '
    ' + echo '

    ' + gettext "Packages lists are up-to-date" + echo '

    ' ;; + upgradeable) + cd $LOCALSTATE + search_form + sub_block + cat << EOT +

    `gettext "Upgradeable packages"`

    + +
    +EOT + list_full_actions + tazpkg upgradeable + echo '
    ' + table_start + table_head + for pkg in `cat upgradeable-packages.list` + do + grep "^$pkg |" $LOCALSTATE/packages.desc | parse_packages_desc + done + table_end + echo '
    ' ;; + do=*) + # Do an action on one or some packages + cmdline=`echo ${QUERY_STRING#do=} | sed s'/&/ /g'` + cmd=`echo ${cmdline} | awk '{print $1}'` + pkgs=`echo $cmdline | sed -e s'/+/ /g' -e s'/pkg=//g' -e s/$cmd//` + [ $cmd == install ] && cmd=get-install opt=--forced + search_form + sub_block + cat << EOT +

    Tazpkg: $cmd

    +
    +
    +

    +EOT + gettext "Performing task on packages" + echo '

    ' + echo '
    '
    +		gettext "Executing $cmd for:$pkgs"
    +		echo '
    ' + for pkg in $pkgs + do + echo '
    '
    +			echo 'y' | tazpkg $cmd $pkg $opt 2>/dev/null | filter_tazpkg_msgs
    +			echo '
    ' + done ;; + info=*) + pkg=${QUERY_STRING#*=} + search_form + sub_block + . $INSTALLED/$pkg/receipt + cat << EOT +

    `gettext "Package info"`

    +
    +

    `gettext "Detailled information on:"` $PACKAGE

    +
    +
    +Name        : $PACKAGE
    +Version     : $VERSION
    +Description : $SHORT_DESC
    +Maintainer  : $MAINTAINER
    +Depends     : `for i in $DEPENDS; do echo -n \
    +	"$i "; done`
    +Website     : $WEB_SITE
    +Sizes       : $PACKED_SIZE/$UNPACKED_SIZE
    +Files       : `cat $INSTALLED/$pkg/files.list | wc -l`
    +
    + +

    `gettext "Installed files"`

    +
    +`cat $INSTALLED/$pkg/files.list`
    +
    +EOT + ;; + config*) + # Tazpkg configuration page + cmd=${QUERY_STRING#*=} + case "$cmd" in + clean) + rm -rf /var/cache/tazpkg/* ;; + add-mirror*=http*|add-mirror*=ftp*) + # Decode url + mirror=`httpd -d ${cmd#*=}` + echo "$mirror" >> $LOCALSTATE/mirrors ;; + rm-mirror=http://*|rm-mirror=ftp://*) + mirror=${QUERY_STRING#*=rm-mirror=} + sed -i -e "s@$mirror@@" -e '/^$/d' $LOCALSTATE/mirrors ;; + esac + cache_files=`find /var/cache/tazpkg -name *.tazpkg | wc -l` + cache_size=`du -sh /var/cache/tazpkg` + sub_block + cat << EOT +

    `gettext "Configuration"`

    +
    +

    `gettext "Tazpkg configuration and settings"`

    +
    +
    + +

    + `gettext "Packages in the cache:"` $cache_files ($cache_size) + + +

    + +
    + +

    `gettext "Current mirror list"`

    +
    + +
    +
    +

    + + + +

    +
    +EOT + ;; + *) + # + # Default to summary + # + search_form + sub_block + cat << EOT +

    `gettext "Summary"`

    +
    +

    `gettext "Overview of all installed and mirrored packages"`

    +
    +
    +`packages_summary`
    +
    +

    `gettext "Latest log entries"`

    +
    +`tail -n 6 /var/log/tazpkg.log | fgrep "-" | \
    +	awk '{print $1, $2, $3, $4, $5, $6, $7}'`
    +
    + +EOT + ;; +esac + +# xHTML 5 footer +cd $PANEL && xhtml_footer +exit 0 diff -r c630f623ac7c -r 2274e489400c po/tazpanel-pkgs/tazpkg-cgi.pot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/po/tazpanel-pkgs/tazpkg-cgi.pot Tue Apr 05 01:42:16 2011 +0200 @@ -0,0 +1,154 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Tazpkg CGI 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-04-03 17:41+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: tazpkg.cgi:61 +msgid "Installed packages : " +msgstr "" + +#: tazpkg.cgi:63 +msgid "Mirrored packages : " +msgstr "" + +#: tazpkg.cgi:65 +msgid "Last recharge : " +msgstr "" + +#: tazpkg.cgi:67 +msgid "Upgradeable packages : " +msgstr "" + +#: tazpkg.cgi:69 +msgid "Installed files : " +msgstr "" + +#: tazpkg.cgi:71 +msgid "Blocked packages : " +msgstr "" + +#: tazpkg.cgi:96 +msgid "Search" +msgstr "" + +#: tazpkg.cgi:108 +msgid "Name" +msgstr "" + +#: tazpkg.cgi:109 +msgid "Version" +msgstr "" + +#: tazpkg.cgi:110 +msgid "Description" +msgstr "" + +#: tazpkg.cgi:111 +msgid "Web" +msgstr "" + +#: tazpkg.cgi:126 tazpkg.cgi:180 +msgid "My packages" +msgstr "" + +#: tazpkg.cgi:127 tazpkg.cgi:212 tazpkg.cgi:230 +msgid "All packages" +msgstr "" + +#: tazpkg.cgi:128 +msgid "Recharge list" +msgstr "" + +#: tazpkg.cgi:129 +msgid "Upgrade" +msgstr "" + +#: tazpkg.cgi:130 tazpkg.cgi:348 +msgid "Configuration" +msgstr "" + +#: tazpkg.cgi:139 tazpkg.cgi:149 tazpkg.cgi:160 +msgid "Selection:" +msgstr "" + +#: tazpkg.cgi:163 +msgid "Toogle all" +msgstr "" + +#: tazpkg.cgi:245 +msgid "Recharge" +msgstr "" + +#: tazpkg.cgi:248 +msgid "Recharge lists will check for new or updated packages" +msgstr "" + +#: tazpkg.cgi:252 +msgid "Recharging the packages list... please wait" +msgstr "" + +#: tazpkg.cgi:256 +msgid "Packages lists are up-to-date" +msgstr "" + +#: tazpkg.cgi:263 +msgid "Upgradeable packages" +msgstr "" + +#: tazpkg.cgi:291 +msgid "Performing task on packages" +msgstr "" + +#: tazpkg.cgi:308 +msgid "Package info" +msgstr "" + +#: tazpkg.cgi:310 +msgid "Detailled information on:" +msgstr "" + +#: tazpkg.cgi:324 +msgid "Installed files" +msgstr "" + +#: tazpkg.cgi:350 +msgid "Tazpkg configuration and settings" +msgstr "" + +#: tazpkg.cgi:353 +msgid "Package in cache" +msgstr "" + +#: tazpkg.cgi:356 +msgid "Packages in the cache:" +msgstr "" + +#: tazpkg.cgi:362 +msgid "Current mirror list" +msgstr "" + +#: tazpkg.cgi:384 +msgid "Summary" +msgstr "" + +#: tazpkg.cgi:386 +msgid "Overview of all installed and mirrored packages" +msgstr "" + +#: tazpkg.cgi:391 +msgid "Latest log entries" +msgstr "" diff -r c630f623ac7c -r 2274e489400c po/tazpkg-cgi/tazpkg-cgi.pot --- a/po/tazpkg-cgi/tazpkg-cgi.pot Tue Apr 05 01:34:37 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Tazpkg CGI 1.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-04-03 17:41+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: tazpkg.cgi:61 -msgid "Installed packages : " -msgstr "" - -#: tazpkg.cgi:63 -msgid "Mirrored packages : " -msgstr "" - -#: tazpkg.cgi:65 -msgid "Last recharge : " -msgstr "" - -#: tazpkg.cgi:67 -msgid "Upgradeable packages : " -msgstr "" - -#: tazpkg.cgi:69 -msgid "Installed files : " -msgstr "" - -#: tazpkg.cgi:71 -msgid "Blocked packages : " -msgstr "" - -#: tazpkg.cgi:96 -msgid "Search" -msgstr "" - -#: tazpkg.cgi:108 -msgid "Name" -msgstr "" - -#: tazpkg.cgi:109 -msgid "Version" -msgstr "" - -#: tazpkg.cgi:110 -msgid "Description" -msgstr "" - -#: tazpkg.cgi:111 -msgid "Web" -msgstr "" - -#: tazpkg.cgi:126 tazpkg.cgi:180 -msgid "My packages" -msgstr "" - -#: tazpkg.cgi:127 tazpkg.cgi:212 tazpkg.cgi:230 -msgid "All packages" -msgstr "" - -#: tazpkg.cgi:128 -msgid "Recharge list" -msgstr "" - -#: tazpkg.cgi:129 -msgid "Upgrade" -msgstr "" - -#: tazpkg.cgi:130 tazpkg.cgi:348 -msgid "Configuration" -msgstr "" - -#: tazpkg.cgi:139 tazpkg.cgi:149 tazpkg.cgi:160 -msgid "Selection:" -msgstr "" - -#: tazpkg.cgi:163 -msgid "Toogle all" -msgstr "" - -#: tazpkg.cgi:245 -msgid "Recharge" -msgstr "" - -#: tazpkg.cgi:248 -msgid "Recharge lists will check for new or updated packages" -msgstr "" - -#: tazpkg.cgi:252 -msgid "Recharging the packages list... please wait" -msgstr "" - -#: tazpkg.cgi:256 -msgid "Packages lists are up-to-date" -msgstr "" - -#: tazpkg.cgi:263 -msgid "Upgradeable packages" -msgstr "" - -#: tazpkg.cgi:291 -msgid "Performing task on packages" -msgstr "" - -#: tazpkg.cgi:308 -msgid "Package info" -msgstr "" - -#: tazpkg.cgi:310 -msgid "Detailled information on:" -msgstr "" - -#: tazpkg.cgi:324 -msgid "Installed files" -msgstr "" - -#: tazpkg.cgi:350 -msgid "Tazpkg configuration and settings" -msgstr "" - -#: tazpkg.cgi:353 -msgid "Package in cache" -msgstr "" - -#: tazpkg.cgi:356 -msgid "Packages in the cache:" -msgstr "" - -#: tazpkg.cgi:362 -msgid "Current mirror list" -msgstr "" - -#: tazpkg.cgi:384 -msgid "Summary" -msgstr "" - -#: tazpkg.cgi:386 -msgid "Overview of all installed and mirrored packages" -msgstr "" - -#: tazpkg.cgi:391 -msgid "Latest log entries" -msgstr "" diff -r c630f623ac7c -r 2274e489400c styles/default/header.html --- a/styles/default/header.html Tue Apr 05 01:34:37 2011 +0200 +++ b/styles/default/header.html Tue Apr 05 01:42:16 2011 +0200 @@ -14,7 +14,7 @@