# HG changeset patch # User Christophe Lincoln # Date 1277070400 -7200 # Node ID 9273e7309025e39bca8a286c671b3598ea25b307 # Parent 7b162f03d79a08fb3aaeae89c520ec5b4144994a Move all splited functions to libtazpkgbox (easier for translation) diff -r 7b162f03d79a -r 9273e7309025 Makefile --- a/Makefile Sun Jun 20 21:44:57 2010 +0100 +++ b/Makefile Sun Jun 20 23:46:40 2010 +0200 @@ -36,7 +36,7 @@ install -m 0777 tazpkgbox $(DESTDIR)$(PREFIX)/bin # Tazpkgbox GUI install -m 0755 -d $(DESTDIR)$(LIBDIR) - cp -a lib/tazpkgbox $(DESTDIR)$(LIBDIR) + cp -a lib/libtazpkgbox $(DESTDIR)$(LIBDIR) # Configuration files install -m 0755 -d $(DESTDIR)$(SYSCONFDIR) install -m 0644 tazpkg.conf $(DESTDIR)$(SYSCONFDIR) @@ -56,6 +56,7 @@ rm -f $(DESTDIR)$(PREFIX)/bin/tazpkg rm -f $(DESTDIR)$(PREFIX)/bin/tazpkgbox rm -rf $(DESTDIR)$(LIBDIR)/tazpkgbox + rm -f $(DESTDIR)$(LIBDIR)/libtazpkgbox rm -rf $(DESTDIR)$(DOCDIR)/tazpkg rm -f $(DESTDIR)$(SYSCONFDIR)/tazpkg.conf rm -rf $(DESTDIR)$(PREFIX)/share/locale/*/LC_MESSAGES/tazpkg*.mo diff -r 7b162f03d79a -r 9273e7309025 lib/libtazpkgbox --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/libtazpkgbox Sun Jun 20 23:46:40 2010 +0200 @@ -0,0 +1,695 @@ +#!/bin/sh +# +# The libtazpkgbox - Libraries used by tazpkg GUI box. +# There is functions to list installed packages in a suitable format for +# GTK tree and list mirrored packages using the packages.desc file. +# + +export LIB=/usr/lib/slitaz/libtazpkgbox + +usage() +{ + echo -e "\nTazpkgbox library\n +Usage : $0 [function] [pkg|args] [pkg] +Functions: + list-all List all packages + list-undigest List undigest packages + list-blocked List blocked packages + list-upgradeable List all upgradable packages + search-packages Search for packages + search-files Search for files + search-tags Search for TAGS + package-infos Display box with pkg information" +} + +# List functions. +undigest_list() +{ + IFS="|" + if [ -n "$1" -a "$1" != "all" ]; then + cat undigest/$1/packages.desc + else + cat undigest/*/packages.desc + fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do + ICON=tazpkg + PACKAGE=${PACKAGE%% *} + if [ -d installed/$PACKAGE ]; then + [ "$2" == "installable" ] && continue + ICON=tazpkg-installed + if grep -qs "^$PACKAGE$" blocked-packages.list; then + ICON=stop + fi + else + [ "$2" == "installed" ] && continue + fi + [ "$2" == "blocked" -a "$ICON" != "stop" ] && continue + [ "$2" == "upgradeable" ] && + ! grep -q ^$PACKAGE$ upgradeable-packages.list && continue + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" + done + unset IFS +} + +installable_list() +{ + local cache + cache=packages.installable_list.$CAT + if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then + cat $cache + return + fi + IFS="|" + cat packages.desc undigest/*/packages.desc 2> /dev/null | sort | \ + while read PACKAGE VERSION SHORT_DESC CATEGORY; do + # Check first for category for more speed. + CATEGORY=${CATEGORY%| *} + ICON=tazpkg + [ $CAT == all -o $CATEGORY == " $CAT " ] || continue + [ -d installed/${PACKAGE%% *} ] && continue + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" + done | tee $cache + unset IFS +} + +installed_list() +{ + for pkg in ${1}installed/* + do + [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue + . $pkg/receipt + ICON=tazpkg-installed + [ $CAT == all -o $CATEGORY == $CAT ] || continue + if [ -n "$1" -o -L $pkg ]; then + ICON=media-flash + else + grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add + fi + grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop + echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" + done +} + +all_list() +{ + local cache + cache=packages.all_list.$CAT + if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then + cat $cache + return + fi + ( installable_list ; installed_list ) | sort -t \| -k 2 -u | tee $cache +} + +blocked_list() +{ + ICON=tazpkg-installed + [ "$1" = "blocked" ] && ICON=stop + for pkg in $(cat $1-packages.list 2> /dev/null); do + [ -f installed/$pkg/receipt ] || continue + . installed/$pkg/receipt + [ $CAT == all -o $CATEGORY == $CAT ] || continue + AVAILABLE=$(grep -s "^$pkg " packages.desc \ + undigest/*/packages.desc | awk '{ print $3 }') + echo "$ICON|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" + done +} + +# Search functions + +clean_search() +{ + # Clean preview results. + rm -f /tmp/tazpkgbox/search + touch /tmp/tazpkgbox/search +} + +list_files() +{ + sed 's/.\[[01]m//g' | awk 'BEGIN { show=0 } { + if (/^===/) show=1-show; + else if (/^Package/) pkg=$2; + else if ($0 != "" && show != 0) printf("%s %s\n",pkg,$0); + }' | while read pkg file; do + [ "$pkg" = "0" ] && continue + version=$(grep -hs "^$pkg " /var/lib/tazpkg/packages.desc \ + /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') + if [ -d /var/lib/tazpkg/installed/$pkg ]; then + if [ -x $file ]; then + echo "exec|$pkg|$version|$file" + elif [ -f $file ]; then + echo "txt|$pkg|$version|$file" + elif [ -d $file ] ; then + echo "folder|$pkg|$version|$file" + else + # Missing installed file. + echo "dialog-warning|$pkg|$version|$file" + fi + else + echo "tazpkg|$pkg|$version|$file" + fi + done +} + +list_package() +{ + if [ -d /var/lib/tazpkg/installed/$1 ]; then + . /var/lib/tazpkg/installed/$1/receipt + echo "tazpkg-installed|$PACKAGE|$VERSION|$SHORT_DESC" + else + echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC" + fi +} + +search_package() +{ + IFS="|" + cat /var/lib/tazpkg/packages.desc \ + /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ + while read PACKAGE VERSION SHORT_DESC; do + if echo "$PACKAGE $SHORT_DESC" | grep -iq "$SEARCH"; then + list_package ${PACKAGE%% *} + fi + done + unset IFS +} + +case "$1" in + list-all) + cd /var/lib/tazpkg + CAT=`cat /tmp/tazpkgbox/category` + STATUS=`cat /tmp/tazpkgbox/status` + case $STATUS in + blocked|upgradeable) + blocked_list $STATUS;; + linkable) + [ -d fslink ] && installed_list \ + $(readlink fslink)/var/lib/tazpkg/;; + installed) + installed_list ;; + installable) + installable_list ;; + *) + all_list ;; + esac ;; + list-undigest) + cd /var/lib/tazpkg + CAT=`cat /tmp/tazpkgbox/category` + set -- `cat /tmp/tazpkgbox/undigest-category` + if [ "$1" == "all" -o "$1" == "" ]; then + undigest_list $2 $3 + else + undigest_list $2 $3 | grep "$1" + fi ;; + list-blocked|list-upgradeable) + cd /var/lib/tazpkg + CAT=`cat /tmp/tazpkgbox/category` + blocked_list $1 ;; + search-files) + # Search for files + clean_search + tazpkg search-file "$SEARCH" --mirror | list_files > \ + /tmp/tazpkgbox/search ;; + search-packages) + clean_search + ( search_package ; + for i in $(grep ^$SEARCH= /var/lib/tazpkg/packages.equiv | \ + cut -d= -f2); do + SEARCH=${i#*:} + search_package + done ) > /tmp/tazpkgbox/search ;; + search-tags) + clean_search + grep -ls TAGS /home/slitaz/wok/*/receipt | while read file; do + TAGS="" + . $file + case "$TAGS" in + *$SEARCH*) list_package $PACKAGE ;; + esac + done > /tmp/tazpkgbox/search ;; + package-infos) + # Dialog box to provide package info and actions + XTERM_OPTS="-geometry 80x16+120+120" + PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` + ROOT=/var/lib/tazpkg + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then + ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT + fi + TMP_DIR=/tmp/tazpkg-$$-$RANDOM + if [ "$2" = "sizes" ]; then + cat < /dev/null ) + fi + cat $ROOT/installed/$3/files.list | grep ^/ | while read file; do + realfile="$file" + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then + realfile="$(readlink /var/lib/tazpkg/fslink)$file" + fi + echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \ + echo "File lost !||||$file|")" + if [ -L "$realfile" ]; then + echo -n "$(readlink "$realfile")" + elif [ -f "$file" ]; then + case "$CONF_FILES" in + *$file*) + if cmp $file $TMP_DIR$file > /dev/null 2>&1; then + echo -n "[configuration]" + else + echo -n "$(stat -c "[configuration: %.16y]" $file)" + fi;; + #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then + # echo -n "Invalid md5" + # fi;; + esac + fi + echo "" + done + [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR + exit 0 + fi + + if [ "$2" = "list_files_mirror" ]; then + for i in /var/lib/tazpkg/files.list.lzma \ + /var/lib/tazpkg/undigest/*/files.list.lzma ; do + [ -f $i ] || continue + unlzma -c $i + done | grep -- "^$3:" | awk '{ print substr($0,index($0,":")+2) }' + exit 0 + fi + + if [ "$2" = "list_packages" ]; then + PKG="$3" + if [ -n "$4" ]; then + shift + export LIST_PKGS=' + + + + 600160 + + PKG + ' + for i in "$@"; do + if [ -d $ROOT/installed/$i ]; then + . $ROOT/installed/$i/receipt + LIST_PKGS="$LIST_PKGS + $i|$VERSION|Installed|$SHORT_DESC + " + else + RES=`grep -sh "^$i " \ + /var/lib/tazpkg/packages.desc \ + /var/lib/tazpkg/undigest/*/packages.desc` + PACKAGE=`echo "$RES" | cut -d "|" -f 1` + VERSION=`echo "$RES" | cut -d "|" -f 2` + SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` + SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \ + /var/lib/tazpkg/packages.txt \ + /var/lib/tazpkg/undigest/*/packages.txt | \ + tail -1 | sed 's/.*(\(.*\) .*/\1/'` + LIST_PKGS="$LIST_PKGS + $i|$VERSION|$SIZE|$SHORT_DESC + " + fi + done + LIST_PKGS="$LIST_PKGS + echo "\$PKG" > /tmp/tazpkgbox/pkg + $0 package-infos + refresh:PKG + refresh:PKG_STATS + refresh:CACHE_STATS + + + + + + + + " + eval `gtkdialog --center --program=LIST_PKGS` + [ "$EXIT" = "OK" ] || exit 0 + fi + fi + + export LIST_FILES=" + + + + FILE + 600160 + + $0 package-infos list_files $PKG + tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE + + + + + + + " + + export LIST_FILES_MIRROR=" + + + + 300160 + + $0 package-infos list_files_mirror $PKG + + + + + + + " + + # Installed or not installed, that is the question! + if [ -d $ROOT/installed/$PKG ]; then + PACKED_SIZE="" + DEPENDS="" + MAINTAINER="" + BUGS="" + TAGS="" + . $ROOT/installed/$PKG/receipt + MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') + upgrade_version="$(cat /var/lib/tazpkg/packages.desc \ + /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \ + awk "/^$PACKAGE / { print \$3 }" | head -1 )" + UPGRADE="" + if [ -n "$upgrade_version" ]; then + if [ "$upgrade_version" != "$VERSION" ]; then + UPGRADE="$upgrade_version" + else + cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \ + $ROOT/installed.md5)" + new_md5="$(cat /var/lib/tazpkg/packages.md5 \ + /var/lib/tazpkg/undigest/*/packages.md5 \ + 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")" + if [ -n "$cur_md5" -a -n "$new_md5" -a \ + "$cur_md5" != "$new_md5" ]; then + UPGRADE="build" + fi + fi + fi + PACKAGE_INFOS=" + + + + + 460200 + + FIELD + Version: | $VERSION + Category: | $CATEGORY" + [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Upgrade: | $(echo $UPGRADE)" + [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Depends: | $(echo $DEPENDS)" + [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Suggested: | $(echo $SUGGESTED)" + [ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)" + [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Maintainer: | $MAINTAINER" + [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Bugs: | $BUGS" + [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Handbook: | $HANDBOOK_URL" + [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Tags: | $TAGS" + [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Config files: | $CONFIG_FILES" + [ -f $ROOT/installed/$PKG/modifiers ] && + PACKAGE_INFOS="$PACKAGE_INFOS + Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)" + PACKAGE_INFOS="$PACKAGE_INFOS + Website: | $WEB_SITE + Tip: | double-click any item for more information + $0 package-infos info \"\$FIELD\" $PKG + + + " + [ -s $ROOT/installed/$PACKAGE/description.txt ] && + PACKAGE_INFOS="$PACKAGE_INFOS + " + if [ ! -d /var/lib/tazpkg/fslink ]; then + [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS + " + [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS + " + grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS + " + if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then + PACKAGE_INFOS="$PACKAGE_INFOS + " + else + PACKAGE_INFOS="$PACKAGE_INFOS + " + fi + fi + if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then + PACKAGE_INFOS="$PACKAGE_INFOS + " + elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then + [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS + + " + PACKAGE_INFOS="$PACKAGE_INFOS + + " + else + PACKAGE_INFOS="$PACKAGE_INFOS + + + " + fi + PACKAGE_INFOS="$PACKAGE_INFOS + + + + + + + " + export PACKAGE_INFOS + else + RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \ + /var/lib/tazpkg/undigest/*/packages.desc` + PACKAGE=`echo "$RES" | cut -d "|" -f 1` + VERSION=`echo "$RES" | cut -d "|" -f 2` + SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` + CATEGORY=`echo "$RES" | cut -d "|" -f 4` + WEB_SITE=`echo "$RES" | cut -d "|" -f 5` + SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \ + /var/lib/tazpkg/undigest/*/packages.txt | tail -1` + DEPENDS="" + SUGGESTED="" + MAINTAINER="" + BUGS="" + HANDBOOK_URL="" + TAGS="" + CONFIG_FILES="" + height=160 + if [ -s /home/slitaz/wok/$PKG/receipt ]; then + . /home/slitaz/wok/$PKG/receipt + height=200 + fi + PACKAGE_INFOS=" + + + + + 460$height + + FIELD2 + Version: | $VERSION + Category: | $CATEGORY" + [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Depends: | $(echo $DEPENDS)" + [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Suggested: | $(echo $SUGGESTED)" + [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Size: | $SIZES" + [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Maintainer: | $MAINTAINER" + [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Bugs: | $BUGS" + [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Handbook: | $HANDBOOK_URL" + [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Tags: | $TAGS" + [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS + Config files: | $CONFIG_FILES" + PACKAGE_INFOS="$PACKAGE_INFOS + Website: | $WEB_SITE + Receipt: | double-click to view receipt + case \$FIELD2 in Web*) browser $WEB_SITE &;; esac + case \$FIELD2 in Rec*) browser http://hg.slitaz.org/wok/raw-file/tip/$PACKAGE/receipt &;; esac + + + + " + [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS + + + AUTO_EXEC + true + " + PACKAGE_INFOS="$PACKAGE_INFOS + + + AUTO_DEPENDS + true + + + + + + + + + + " + export PACKAGE_INFOS + fi + gtkdialog --center --program=PACKAGE_INFOS ;; + + *) + usage ;; +esac + +exit 0 diff -r 7b162f03d79a -r 9273e7309025 lib/tazpkgbox/list --- a/lib/tazpkgbox/list Sun Jun 20 21:44:57 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -#!/bin/sh -# -# List installed packages in a suitable format for GTK tree. -# List mirrored packages using the packages.desc file. -# - -undigest_list() -{ - IFS="|" - if [ -n "$1" -a "$1" != "all" ]; then - cat undigest/$1/packages.desc - else - cat undigest/*/packages.desc - fi 2> /dev/null | sort | while read PACKAGE VERSION SHORT_DESC; do - ICON=tazpkg - PACKAGE=${PACKAGE%% *} - if [ -d installed/$PACKAGE ]; then - [ "$2" == "installable" ] && continue - ICON=tazpkg-installed - if grep -qs "^$PACKAGE$" blocked-packages.list; then - ICON=stop - fi - else - [ "$2" == "installed" ] && continue - fi - [ "$2" == "blocked" -a "$ICON" != "stop" ] && continue - [ "$2" == "upgradeable" ] && - ! grep -q ^$PACKAGE$ upgradeable-packages.list && continue - echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" - done - unset IFS -} - -installable_list() -{ - local cache - cache=packages.installable_list.$CAT - if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then - cat $cache - return - fi - IFS="|" - cat packages.desc undigest/*/packages.desc 2> /dev/null | sort | \ - while read PACKAGE VERSION SHORT_DESC CATEGORY; do - # Check first for category for more speed. - CATEGORY=${CATEGORY%| *} - ICON=tazpkg - [ $CAT == all -o $CATEGORY == " $CAT " ] || continue - [ -d installed/${PACKAGE%% *} ] && continue - grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add - echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" - done | tee $cache - unset IFS -} - -installed_list() -{ - for pkg in ${1}installed/* - do - [ -n "$1" -a -s installed/$(basename $pkg)/receipt ] && continue - . $pkg/receipt - ICON=tazpkg-installed - [ $CAT == all -o $CATEGORY == $CAT ] || continue - if [ -n "$1" -o -L $pkg ]; then - ICON=media-flash - else - grep -qs "^$PACKAGE" undigest/*/packages.desc && ICON=add - fi - grep -qs "^$PACKAGE$" blocked-packages.list && ICON=stop - echo "$ICON|$PACKAGE|$VERSION|$SHORT_DESC" - done -} - -all_list() -{ - local cache - cache=packages.all_list.$CAT - if [ -s $cache -a $cache -nt packages.desc -a $cache -nt installed ]; then - cat $cache - return - fi - ( installable_list ; installed_list ) | sort -t \| -k 2 -u | tee $cache -} - -blocked_list() -{ - ICON=tazpkg-installed - [ "$1" = "blocked" ] && ICON=stop - for pkg in $(cat $1-packages.list 2> /dev/null); do - [ -f installed/$pkg/receipt ] || continue - . installed/$pkg/receipt - [ $CAT == all -o $CATEGORY == $CAT ] || continue - AVAILABLE=$(grep -s "^$pkg " packages.desc \ - undigest/*/packages.desc | awk '{ print $3 }') - echo "$ICON|$PACKAGE|$VERSION (Available: $AVAILABLE)|$SHORT_DESC" - done -} - -cd /var/lib/tazpkg -CAT=`cat /tmp/tazpkgbox/category` -case $1 in - all) - STATUS=`cat /tmp/tazpkgbox/status` - case $STATUS in - blocked|upgradeable) - blocked_list $STATUS;; - linkable) - [ -d fslink ] && installed_list \ - $(readlink fslink)/var/lib/tazpkg/;; - installed) - installed_list ;; - installable) - installable_list ;; - *) - all_list ;; - esac ;; - undigest) - set -- `cat /tmp/tazpkgbox/undigest-category` - if [ "$1" == "all" -o "$1" == "" ]; then - undigest_list $2 $3 - else - undigest_list $2 $3 | grep "$1" - fi ;; - blocked|upgradeable) - blocked_list $1;; - *) - echo "Usage: $0 [all|undigest|blocked|upgradeable]" ;; -esac - -exit 0 diff -r 7b162f03d79a -r 9273e7309025 lib/tazpkgbox/package_infos --- a/lib/tazpkgbox/package_infos Sun Jun 20 21:44:57 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,468 +0,0 @@ -#!/bin/sh -# -# Dialog box to provide package info and actions -# - -XTERM_OPTS="-geometry 80x16+120+120" - -PKG=`cat /tmp/tazpkgbox/pkg | sed s/" "/""/g` -ROOT=/var/lib/tazpkg -if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then - ROOT=$(readlink /var/lib/tazpkg/fslink)$ROOT -fi -TMP_DIR=/tmp/tazpkg-$$-$RANDOM - -if [ "$1" = "sizes" ]; then - cat < /dev/null ) - fi - cat $ROOT/installed/$2/files.list | grep ^/ | while read file; do - realfile="$file" - if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then - realfile="$(readlink /var/lib/tazpkg/fslink)$file" - fi - echo -n "$(stat -c "%A|%U|%G|%s|$file|" "$realfile" || \ - echo "File lost !||||$file|")" - if [ -L "$realfile" ]; then - echo -n "$(readlink "$realfile")" - elif [ -f "$file" ]; then - case "$CONF_FILES" in - *$file*) - if cmp $file $TMP_DIR$file > /dev/null 2>&1; then - echo -n "[configuration]" - else - echo -n "$(stat -c "[configuration: %.16y]" $file)" - fi;; - #* if [ "$(tazpkg check-file $file $2)" = "failure" ]; then - # echo -n "Invalid md5" - # fi;; - esac - fi - echo "" - done - [ -n "$CONF_FILES" ] && rm -rf $TMP_DIR - exit 0 -fi - -if [ "$1" = "list_files_mirror" ]; then - for i in /var/lib/tazpkg/files.list.lzma \ - /var/lib/tazpkg/undigest/*/files.list.lzma ; do - [ -f $i ] || continue - unlzma -c $i - done | grep -- "^$2:" | awk '{ print substr($0,index($0,":")+2) }' - exit 0 -fi - -if [ "$1" = "list_packages" ]; then - PKG="$2" - if [ -n "$3" ]; then - shift - export LIST_PKGS=' - - - - 600160 - - PKG -' - for i in "$@"; do - if [ -d $ROOT/installed/$i ]; then - . $ROOT/installed/$i/receipt - LIST_PKGS="$LIST_PKGS - $i|$VERSION|Installed|$SHORT_DESC -" - else - RES=`grep -sh "^$i " \ - /var/lib/tazpkg/packages.desc \ - /var/lib/tazpkg/undigest/*/packages.desc` - PACKAGE=`echo "$RES" | cut -d "|" -f 1` - VERSION=`echo "$RES" | cut -d "|" -f 2` - SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` - SIZE=`grep -sh -A 3 "^$(echo $PACKAGE)$" \ - /var/lib/tazpkg/packages.txt \ - /var/lib/tazpkg/undigest/*/packages.txt | \ - tail -1 | sed 's/.*(\(.*\) .*/\1/'` - LIST_PKGS="$LIST_PKGS - $i|$VERSION|$SIZE|$SHORT_DESC -" - fi - done - LIST_PKGS="$LIST_PKGS - echo "\$PKG" > /tmp/tazpkgbox/pkg - /usr/lib/slitaz/tazpkgbox/package_infos - refresh:PKG - refresh:PKG_STATS - refresh:CACHE_STATS - - - - - - - -" - eval `gtkdialog --center --program=LIST_PKGS` - [ "$EXIT" = "OK" ] || exit 0 - fi -fi - -export LIST_FILES=" - - - - FILE - 600160 - - $0 list_files $PKG - tazpkg list-config $PKG | grep -q ^\$FILE$ && leafpad \$FILE - - - - - - -" - -export LIST_FILES_MIRROR=" - - - - 300160 - - $0 list_files_mirror $PKG - - - - - - -" - -# Installed or not installed, that is the question! -if [ -d $ROOT/installed/$PKG ]; then - PACKED_SIZE="" - DEPENDS="" - MAINTAINER="" - BUGS="" - TAGS="" - . $ROOT/installed/$PKG/receipt - MAINTAINER=$(echo "$MAINTAINER" | sed 's/[<>|]/ /g') - upgrade_version="$(cat /var/lib/tazpkg/packages.desc \ - /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | \ - awk "/^$PACKAGE / { print \$3 }" | head -1 )" - UPGRADE="" - if [ -n "$upgrade_version" ]; then - if [ "$upgrade_version" != "$VERSION" ]; then - UPGRADE="$upgrade_version" - else - cur_md5="$(awk "/ $PACKAGE-$VERSION/ { print \$1 }" \ - $ROOT/installed.md5)" - new_md5="$(cat /var/lib/tazpkg/packages.md5 \ - /var/lib/tazpkg/undigest/*/packages.md5 \ - 2> /dev/null | awk "/ $PACKAGE-$VERSION/ { print \$1 }")" - if [ -n "$cur_md5" -a -n "$new_md5" -a \ - "$cur_md5" != "$new_md5" ]; then - UPGRADE="build" - fi - fi - fi - PACKAGE_INFOS=" - - - - - 460200 - - FIELD - Version: | $VERSION - Category: | $CATEGORY" -[ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Upgrade: | $(echo $UPGRADE)" -[ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Depends: | $(echo $DEPENDS)" -[ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Suggested: | $(echo $SUGGESTED)" -[ -n "$PACKED_SIZE" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Size: | $PACKED_SIZE ($UNPACKED_SIZE installed)" -[ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Maintainer: | $MAINTAINER" -[ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Bugs: | $BUGS" -[ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Handbook: | $HANDBOOK_URL" -[ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Tags: | $TAGS" -[ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Config files: | $CONFIG_FILES" -[ -f $ROOT/installed/$PKG/modifiers ] && -PACKAGE_INFOS="$PACKAGE_INFOS - Modified by: | $(xargs echo < $ROOT/installed/$PKG/modifiers)" -PACKAGE_INFOS="$PACKAGE_INFOS - Website: | $WEB_SITE - Tip: | double-click any item for more information - $0 info \"\$FIELD\" $PKG - - - " -[ -s $ROOT/installed/$PACKAGE/description.txt ] && - PACKAGE_INFOS="$PACKAGE_INFOS - " -if [ ! -d /var/lib/tazpkg/fslink ]; then - [ ${PKG%%-*} = get -a ! -d $ROOT/installed/${PKG#get-} ] && PACKAGE_INFOS="$PACKAGE_INFOS - " - [ -n "$UPGRADE" ] && PACKAGE_INFOS="$PACKAGE_INFOS - " - grep -q post_install $ROOT/installed/$PKG/receipt && PACKAGE_INFOS="$PACKAGE_INFOS - " - if grep -qs ^$PKG$ /var/lib/tazpkg/blocked-packages.list; then - PACKAGE_INFOS="$PACKAGE_INFOS - " - else - PACKAGE_INFOS="$PACKAGE_INFOS - " - fi -fi -if [ "$(cat /tmp/tazpkgbox/status)" = "linkable" ]; then - PACKAGE_INFOS="$PACKAGE_INFOS - " -elif [ ! -s $ROOT/installed/$PKG/modifiers ]; then - [ -L $ROOT/installed/$PKG ] || PACKAGE_INFOS="$PACKAGE_INFOS - -" - PACKAGE_INFOS="$PACKAGE_INFOS - -" -else - PACKAGE_INFOS="$PACKAGE_INFOS - - -" -fi -PACKAGE_INFOS="$PACKAGE_INFOS - - - - - - -" - export PACKAGE_INFOS -else - RES=`grep -sh "^$PKG " /var/lib/tazpkg/packages.desc \ - /var/lib/tazpkg/undigest/*/packages.desc` - PACKAGE=`echo "$RES" | cut -d "|" -f 1` - VERSION=`echo "$RES" | cut -d "|" -f 2` - SHORT_DESC=`echo "$RES" | cut -d "|" -f 3` - CATEGORY=`echo "$RES" | cut -d "|" -f 4` - WEB_SITE=`echo "$RES" | cut -d "|" -f 5` - SIZES=`grep -sh -A 3 "^$(echo $PACKAGE)$" /var/lib/tazpkg/packages.txt \ - /var/lib/tazpkg/undigest/*/packages.txt | tail -1` - DEPENDS="" - SUGGESTED="" - MAINTAINER="" - BUGS="" - HANDBOOK_URL="" - TAGS="" - CONFIG_FILES="" - height=160 - if [ -s /home/slitaz/wok/$PKG/receipt ]; then - . /home/slitaz/wok/$PKG/receipt - height=200 - fi - PACKAGE_INFOS=" - - - - - 460$height - - FIELD2 - Version: | $VERSION - Category: | $CATEGORY" - [ -n "$DEPENDS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Depends: | $(echo $DEPENDS)" - [ -n "$SUGGESTED" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Suggested: | $(echo $SUGGESTED)" - [ -n "$SIZES" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Size: | $SIZES" - [ -n "$MAINTAINER" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Maintainer: | $MAINTAINER" - [ -n "$BUGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Bugs: | $BUGS" - [ -n "$HANDBOOK_URL" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Handbook: | $HANDBOOK_URL" - [ -n "$TAGS" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Tags: | $TAGS" - [ -n "$CONFIG_FILES" ] && PACKAGE_INFOS="$PACKAGE_INFOS - Config files: | $CONFIG_FILES" - PACKAGE_INFOS="$PACKAGE_INFOS - Website: | $WEB_SITE - Receipt: | double-click to view receipt - case \$FIELD2 in Web*) browser $WEB_SITE &;; esac - case \$FIELD2 in Rec*) browser http://hg.slitaz.org/wok/raw-file/tip/$PACKAGE/receipt &;; esac - - - - " - [ ${PACKAGE%%-*} = get ] && PACKAGE_INFOS="$PACKAGE_INFOS - - - AUTO_EXEC - true - " - PACKAGE_INFOS="$PACKAGE_INFOS - - - AUTO_DEPENDS - true - - - - - - - - - -" - export PACKAGE_INFOS -fi - -gtkdialog --center --program=PACKAGE_INFOS - -exit 0 diff -r 7b162f03d79a -r 9273e7309025 lib/tazpkgbox/search --- a/lib/tazpkgbox/search Sun Jun 20 21:44:57 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -#!/bin/sh -# -# This script provides a suitable output for the search results. -# - -# Clean preview results. -rm -f /tmp/tazpkgbox/search -touch /tmp/tazpkgbox/search - -list_files() -{ - sed 's/.\[[01]m//g' | awk 'BEGIN { show=0 } { - if (/^===/) show=1-show; - else if (/^Package/) pkg=$2; - else if ($0 != "" && show != 0) printf("%s %s\n",pkg,$0); - }' | while read pkg file; do - [ "$pkg" = "0" ] && continue - version=$(grep -hs "^$pkg " /var/lib/tazpkg/packages.desc \ - /var/lib/tazpkg/undigest/*/packages.desc | awk '{ print $3 }') - if [ -d /var/lib/tazpkg/installed/$pkg ]; then - if [ -x $file ]; then - echo "exec|$pkg|$version|$file" - elif [ -f $file ]; then - echo "txt|$pkg|$version|$file" - elif [ -d $file ] ; then - echo "folder|$pkg|$version|$file" - else - # Missing installed file. - echo "dialog-warning|$pkg|$version|$file" - fi - else - echo "tazpkg|$pkg|$version|$file" - fi - done -} - -list_package() -{ - if [ -d /var/lib/tazpkg/installed/$1 ]; then - . /var/lib/tazpkg/installed/$1/receipt - echo "tazpkg-installed|$PACKAGE|$VERSION|$SHORT_DESC" - else - echo "tazpkg|$PACKAGE|$VERSION|$SHORT_DESC" - fi -} - -search_package() -{ - IFS="|" - cat /var/lib/tazpkg/packages.desc \ - /var/lib/tazpkg/undigest/*/packages.desc 2> /dev/null | sort | \ - while read PACKAGE VERSION SHORT_DESC; do - if echo "$PACKAGE $SHORT_DESC" | grep -iq "$SEARCH"; then - list_package ${PACKAGE%% *} - fi - done - unset IFS -} - -case "$1" in - files) - tazpkg search-file "$SEARCH" --mirror | list_files > \ - /tmp/tazpkgbox/search ;; - packages) - ( search_package ; - for i in $(grep ^$SEARCH= /var/lib/tazpkg/packages.equiv | \ - cut -d= -f2); do - SEARCH=${i#*:} - search_package - done ) > /tmp/tazpkgbox/search ;; - tags) - grep -ls TAGS /home/slitaz/wok/*/receipt | while read file; do - TAGS="" - . $file - case "$TAGS" in - *$SEARCH*) list_package $PACKAGE ;; - esac - done > /tmp/tazpkgbox/search ;; - *) - echo "Usage: $0 [packages|files|tags]" ;; -esac - - -exit 0 diff -r 7b162f03d79a -r 9273e7309025 tazpkgbox --- a/tazpkgbox Sun Jun 20 21:44:57 2010 +0100 +++ b/tazpkgbox Sun Jun 20 23:46:40 2010 +0200 @@ -2,14 +2,14 @@ # # GTKdialog interface to SliTaz Packages Manager aka Tazpkg. Notes: # Notebook tab are vbox, tabs are used to indent and functions are -# split and found in $LIB. +# split and found in libtazpkgbox. # # (C) GNU gpl v3 - SliTaz GNU/Linux 2010. # VERSION=4.0 # Functions path. -export LIB=/usr/lib/slitaz/tazpkgbox +export LIB=/usr/lib/slitaz/libtazpkgbox # Tazpkgbox is only for root. if test $(id -u) != 0 ; then @@ -285,9 +285,9 @@ 620240 PKG - $LIB/list all + $LIB list-all echo "$PKG" > /tmp/tazpkgbox/pkg - $LIB/package_infos + $LIB package-infos refresh:PKG refresh:PKG_STATS refresh:CACHE_STATS @@ -343,8 +343,8 @@ cat /tmp/tazpkgbox/search echo "$RESULT" > /tmp/tazpkgbox/pkg - $LIB/package_infos - $LIB/search packages + $LIB package-infos + $LIB search-packages refresh:RESULT refresh:PKG refresh:PKG_STATS @@ -360,13 +360,13 @@ ' @@ -374,7 +374,7 @@ ' @@ -388,9 +388,9 @@ 620240 DEV - $LIB/list undigest + $LIB list-undigest echo "$DEV" > /tmp/tazpkgbox/pkg - $LIB/package_infos + $LIB package-infos refresh:PKG refresh:PKG_STATS refresh:CACHE_STATS @@ -631,6 +631,6 @@ ' TAZPKG_DIALOG="$TAZPKG_DIALOG$tmp" -gtkdialog --center --program=TAZPKG_DIALOG >/dev/null +gtkdialog --center --program=TAZPKG_DIALOG #>/dev/null exit 0