tazpkg diff modules/info @ rev 828

Add modules "info", "list" with extended functions; update documentations and translations
author Aleksej Bobylev <al.bobylev@gmail.com>
date Tue Aug 11 01:09:15 2015 +0300 (2015-08-11)
parents
children 7acf0290bdb2
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/modules/info	Tue Aug 11 01:09:15 2015 +0300
     1.3 @@ -0,0 +1,99 @@
     1.4 +#!/bin/sh
     1.5 +# TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
     1.6 +# info - TazPkg module
     1.7 +# Information about package (both installed, mirrored, or local)
     1.8 +
     1.9 +
    1.10 +# Connect function libraries
    1.11 +. /lib/libtaz.sh
    1.12 +# Get TazPkg configuration variables
    1.13 +. /etc/slitaz/slitaz.conf
    1.14 +. /etc/slitaz/tazpkg.conf
    1.15 +
    1.16 +
    1.17 +# Interactive mode
    1.18 +
    1.19 +im() { tty -s; }
    1.20 +
    1.21 +
    1.22 +# Unset variables that may absent in the receipt
    1.23 +unset EXTRAVERSION TAGS DEPENDS PROVIDE SIZES
    1.24 +
    1.25 +if [ -e "$1" ]; then
    1.26 +	# Local package given
    1.27 +
    1.28 +	# Extract receipt from package
    1.29 +	PKG="$(realpath "$1")"
    1.30 +	TMP_DIR=$(mktemp -d); cd $TMP_DIR
    1.31 +	cpio -F "$PKG" -i receipt >/dev/null 2>&1
    1.32 +
    1.33 +	. receipt; rm -r $TMP_DIR
    1.34 +	STATE="$(_ 'local package')"
    1.35 +
    1.36 +elif [ -d "$INSTALLED/$1" ]; then
    1.37 +	# Installed package given
    1.38 +
    1.39 +	. "$INSTALLED/$1/receipt"
    1.40 +	STATE="$(_ 'installed package')"
    1.41 +
    1.42 +elif [ -n "$(awk -F$'\t' -vp="$1" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then
    1.43 +	# Mirrored package given
    1.44 +
    1.45 +	TMP_RECEIPT=$(mktemp)
    1.46 +	awk -F$'\t' -vp="$1" '$1==p{
    1.47 +		printf "PACKAGE=\"%s\"\n", $1
    1.48 +		printf "VERSION=\"%s\"\n", $2
    1.49 +		printf "CATEGORY=\"%s\"\n", $3
    1.50 +		printf "SHORT_DESC=\"%s\"\n", $4
    1.51 +		printf "WEB_SITE=\"%s\"\n", $5
    1.52 +		printf "TAGS=\"%s\"\n", $6
    1.53 +		printf "SIZES=\"%s\"\n", $7
    1.54 +		printf "DEPENDS=\"%s\"\n", $8
    1.55 +	}' "$PKGS_DB/packages.info" > $TMP_RECEIPT
    1.56 +
    1.57 +	. $TMP_RECEIPT; rm $TMP_RECEIPT
    1.58 +	SIZES="$(echo $SIZES | tr ' ' '/')"
    1.59 +	STATE="$(_ 'mirrored package')"
    1.60 +
    1.61 +else
    1.62 +	newline
    1.63 +	_ 'Package "%s" not available.' "$1"
    1.64 +	newline
    1.65 +	exit 1
    1.66 +fi
    1.67 +
    1.68 +
    1.69 +im && title 'TazPkg information'
    1.70 +
    1.71 +# Display localized short description
    1.72 +for LC in $LANG ${LANG%_*}; do
    1.73 +	PDL="$PKGS_DB/packages-desc.$LC"
    1.74 +	if [ -e "$PDL" ]; then
    1.75 +		LOCDESC=$(awk -F$'\t' -vp="$PACKAGE" '$1==p{print $2}' $PDL)
    1.76 +		[ -n "$LOCDESC" ] && SHORT_DESC="$LOCDESC"
    1.77 +	fi
    1.78 +done
    1.79 +
    1.80 +[ -z "$SIZES" ] && SIZES=$(echo $PACKED_SIZE/$UNPACKED_SIZE | sed 's|\.0||g' | sed 's|^/$||')
    1.81 +
    1.82 +emsg "$(
    1.83 +{
    1.84 +	_ 'Package    : %s' "$PACKAGE"
    1.85 +	_ 'State      : %s' "$STATE"
    1.86 +	_ 'Version    : %s' "$VERSION$EXTRAVERSION"
    1.87 +	_ 'Category   : %s' "$(_ $CATEGORY)"
    1.88 +itemize  "$(_ 'Short desc : %s' "$SHORT_DESC")"
    1.89 +			_ 'Maintainer : %s' "$MAINTAINER"
    1.90 +			_ 'License    : %s' "$LICENSE"
    1.91 +itemize  "$(_ 'Depends    : %s' "$DEPENDS")"
    1.92 +itemize  "$(_ 'Suggested  : %s' "$SUGGESTED")"
    1.93 +itemize  "$(_ 'Build deps : %s' "$BUILD_DEPENDS")"
    1.94 +itemize  "$(_ 'Wanted src : %s' "$WANTED")"
    1.95 +			_ 'Web site   : %s' "$WEB_SITE"
    1.96 +itemize  "$(_ 'Conf. files: %s' "$CONFIG_FILES")"
    1.97 +itemize  "$(_ 'Provide    : %s' "$PROVIDE")"
    1.98 +			_ 'Size       : %s' "$SIZES"
    1.99 +itemize  "$(_ 'Tags       : %s' "$TAGS")"
   1.100 +} | sed '/: $/d; s|^\([^:]*\):|<b>\1:</b>|')"
   1.101 +im && footer
   1.102 +