spk diff spk @ rev 19

add: spk and some improvments
author Christophe Lincoln <pankso@slitaz.org>
date Tue May 15 14:20:23 2012 +0200 (2012-05-15)
parents
children 7d060800df61
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/spk	Tue May 15 14:20:23 2012 +0200
     1.3 @@ -0,0 +1,126 @@
     1.4 +#!/bin/sh
     1.5 +#
     1.6 +# Spk - The SliTaz Packages toolset. Read the README before adding or
     1.7 +# modifing any code in spk!
     1.8 +#
     1.9 +# Copyright (C) SliTaz GNU/Linux - BSD License
    1.10 +# Author: See AUTHORS files
    1.11 +#
    1.12 +#. /usr/lib/slitaz/libspk.sh
    1.13 +. lib/libspk.sh
    1.14 +
    1.15 +#
    1.16 +# Functions
    1.17 +#
    1.18 +
    1.19 +# Help and usage
    1.20 +usage() {
    1.21 +	name=$(basename $0)
    1.22 +	cat << EOT
    1.23 +
    1.24 +$(boldify $(gettext "Usage:")) $name [packages|--options]
    1.25 +
    1.26 +$(gettext "SliTaz Packages toolset")
    1.27 +
    1.28 +$(boldify $(gettext "Commands:"))
    1.29 +  info     $(gettext "Display path, mirror and other stats")
    1.30 +  activity $(gettext "Display packages activities")
    1.31 +
    1.32 +$(boldify $(gettext "Options:"))
    1.33 +  --block     $(gettext "TODO")
    1.34 +  --root      $(gettext "Set the root file system path")
    1.35 +  --debug     $(gettext "Display some usefull debug information")
    1.36 +
    1.37 +$(boldify $(gettext "Examples:"))
    1.38 +  $name package1 package2 packageN
    1.39 +  $name package --block
    1.40 +
    1.41 +EOT
    1.42 +	exit 0
    1.43 +}
    1.44 +
    1.45 +#
    1.46 +# Commands and exit
    1.47 +#
    1.48 +
    1.49 +case "$1" in
    1.50 +	""|*usage|*help) usage ;;
    1.51 +	info)
    1.52 +		newline
    1.53 +		boldify "Spk Info"
    1.54 +		separator
    1.55 +		gettext "Database   :"; echo " $installed"
    1.56 +		gettext "Mirror URL :"; echo " $(cat $mirrorurl)"
    1.57 +		count_installed
    1.58 +		count_mirrored
    1.59 +		separator
    1.60 +		newline && exit 0 ;;
    1.61 +	activity)
    1.62 +		newline
    1.63 +		boldify "Spk Activity"
    1.64 +		separator
    1.65 +		cat $activity
    1.66 +		separator && newline
    1.67 +		exit 0 ;;
    1.68 +	ls|add)
    1.69 +		# Sort of helper on wrong commands or --option ? Or have better
    1.70 +		# usage/help: spk help [command] ?
    1.71 +		gettext "Did you mean ?"; echo " spk-$@"
    1.72 +		exit 0 ;;
    1.73 +esac
    1.74 +
    1.75 +#
    1.76 +# Handle packages: spk package1 ... packageN
    1.77 +#
    1.78 +
    1.79 +[ "$debug" ] && echo "DEBUG: cmdline: $0 $@"
    1.80 +count=0
    1.81 +
    1.82 +for pkg in $@
    1.83 +do
    1.84 +	# Handle: --options
    1.85 +	case " $@ " in
    1.86 +		*\ --rm\ *)
    1.87 +			spk-rm $pkg --count=$count
    1.88 +			count=$(($count + 1))
    1.89 +			continue ;;
    1.90 +	esac
    1.91 +	count=$(($count + 1))
    1.92 +	# Installed ?
    1.93 +	if [ -d "$installed/$pkg" ]; then
    1.94 +		[ "$count" == 1 ] && newline
    1.95 +		unset_receipt
    1.96 +		. $installed/$pkg/receipt
    1.97 +		boldify "$(gettext "Package") $pkg"
    1.98 +		separator
    1.99 +		gettext "Status     : installed"; newline
   1.100 +		receipt_info
   1.101 +		separator && newline
   1.102 +		continue
   1.103 +	fi
   1.104 +	# Mirrored ?
   1.105 +	mirrored=$(grep "^$pkg |" $pkgsdesc)
   1.106 +	if [ "$mirrored" ]; then
   1.107 +		# Handle: --add
   1.108 +		if [ "$add" ]; then
   1.109 +			echo "TODO: test 'spk-add $pkg'"
   1.110 +		else
   1.111 +			[ "$count" == 1 ] && newline
   1.112 +			boldify "$(gettext "Package") $pkg"
   1.113 +			separator
   1.114 +			gettext "Status     : not installed"; echo ""
   1.115 +			echo "$mirrored" | awk 'BEGIN { FS = "|" } ; { print \
   1.116 +				"Version    :" $2 "\n" \
   1.117 +				"Short desc :" $3 "\n" \
   1.118 +				"Category   :" $4 }'
   1.119 +			separator && newline
   1.120 +		fi
   1.121 +		continue
   1.122 +	fi
   1.123 +	# Skip options such as --confirm or unknow package
   1.124 +	case "$pkg" in
   1.125 +		--*) continue ;;
   1.126 +		*) gettext "Unknow package"; echo ": $pkg"
   1.127 +	esac
   1.128 +done
   1.129 +exit 0