tazpkg annotate modules/info @ rev 840

Add a bunch of modules with new-style support of 'root' (not all commands are modules yet); strip and compress resources.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Aug 28 16:10:34 2015 +0300 (2015-08-28)
parents 7acf0290bdb2
children 45d90da42ede
rev   line source
al@828 1 #!/bin/sh
al@828 2 # TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
al@828 3 # info - TazPkg module
al@828 4 # Information about package (both installed, mirrored, or local)
al@828 5
al@828 6
al@828 7 # Connect function libraries
al@828 8 . /lib/libtaz.sh
al@840 9
al@840 10 # Get TazPkg working environment
al@840 11 . @@MODULES@@/getenv
al@840 12
al@840 13
al@828 14
al@828 15
al@828 16 # Interactive mode
al@828 17
al@828 18 im() { tty -s; }
al@828 19
al@828 20
al@828 21 # Unset variables that may absent in the receipt
al@828 22 unset EXTRAVERSION TAGS DEPENDS PROVIDE SIZES
al@828 23
al@840 24 if [ -e "$1" -a "${1%.tazpkg}" != "$1" ]; then
al@828 25 # Local package given
al@828 26
al@828 27 # Extract receipt from package
al@840 28 PKG=$(realpath "$1")
al@840 29 TMP_DIR=$(mktemp -d); cd "$TMP_DIR"
al@828 30 cpio -F "$PKG" -i receipt >/dev/null 2>&1
al@828 31
al@840 32 . receipt; rm -r "$TMP_DIR"
al@840 33 STATE=$(_ 'local package')
al@828 34
al@828 35 elif [ -d "$INSTALLED/$1" ]; then
al@828 36 # Installed package given
al@828 37
al@828 38 . "$INSTALLED/$1/receipt"
al@840 39 STATE=$(_ 'installed package')
al@828 40
al@830 41 if [ -e "$PKGS_DB/packages.info" ]; then
al@830 42 # Check if upgrade available
al@840 43 NEWVER=$(awk -F$'\t' -vp="$1" '$1==p{print $2}' "$PKGS_DB/packages.info")
al@830 44 if [ "$VERSION" != "$NEWVER" ]; then
al@830 45 VERSION="$VERSION $(_n '(new version "%s" available)' "$NEWVER")"
al@830 46 else
al@840 47 OLDMD5=$(awk -F$'\t' -vp="$1" '$1==p{print $9}' "$PKGS_DB/installed.info")
al@840 48 NEWMD5=$(awk -F$'\t' -vp="$1" '$1==p{print $9}' "$PKGS_DB/packages.info")
al@830 49 if [ "$OLDMD5" != "$NEWMD5" ]; then
al@830 50 VERSION="$VERSION $(_n '(new build available)')"
al@830 51 fi
al@830 52 fi
al@830 53 fi
al@828 54
al@830 55 elif [ -e "$PKGS_DB/packages.info" ]; then
al@830 56 # Mirrored packages DB is available
al@830 57 if [ -n "$(awk -F$'\t' -vp="$1" '$1==p{print $1}' "$PKGS_DB/packages.info")" ]; then
al@830 58 # Mirrored package given
al@828 59
al@830 60 TMP_RECEIPT=$(mktemp)
al@830 61 awk -F$'\t' -vp="$1" '$1==p{
al@840 62 printf "PACKAGE=\"%s\"\n", $1
al@840 63 printf "VERSION=\"%s\"\n", $2
al@840 64 printf "CATEGORY=\"%s\"\n", $3
al@830 65 printf "SHORT_DESC=\"%s\"\n", $4
al@840 66 printf "WEB_SITE=\"%s\"\n", $5
al@840 67 printf "TAGS=\"%s\"\n", $6
al@840 68 printf "SIZES=\"%s\"\n", $7
al@840 69 printf "DEPENDS=\"%s\"\n", $8
al@840 70 }' "$PKGS_DB/packages.info" > "$TMP_RECEIPT"
al@828 71
al@840 72 . "$TMP_RECEIPT"; rm "$TMP_RECEIPT"
al@840 73 SIZES=$(echo $SIZES | tr ' ' '/')
al@840 74 STATE=$(_ 'mirrored package')
al@830 75 else
al@830 76 newline
al@830 77 _ 'Package "%s" not available.' "$1"
al@830 78 newline
al@830 79 exit 1
al@830 80 fi
al@828 81 else
al@830 82 # Mirrored packages DB isn't available
al@828 83 newline
al@830 84 longline "$(_ "No \"%s\" found to check for mirrored packages. For more \
al@830 85 results, please run \"%s\" once as root before searching." 'packages.info' \
al@830 86 'tazpkg recharge')"
al@828 87 newline
al@828 88 exit 1
al@828 89 fi
al@828 90
al@828 91
al@840 92 im && title 'TazPkg information' >&2
al@828 93
al@828 94 # Display localized short description
al@828 95 for LC in $LANG ${LANG%_*}; do
al@828 96 PDL="$PKGS_DB/packages-desc.$LC"
al@828 97 if [ -e "$PDL" ]; then
al@828 98 LOCDESC=$(awk -F$'\t' -vp="$PACKAGE" '$1==p{print $2}' $PDL)
al@828 99 [ -n "$LOCDESC" ] && SHORT_DESC="$LOCDESC"
al@828 100 fi
al@828 101 done
al@828 102
al@828 103 [ -z "$SIZES" ] && SIZES=$(echo $PACKED_SIZE/$UNPACKED_SIZE | sed 's|\.0||g' | sed 's|^/$||')
al@828 104
al@828 105 emsg "$(
al@828 106 {
al@840 107 _ 'Package : %s' "$PACKAGE"
al@840 108 _ 'State : %s' "$STATE"
al@840 109 _ 'Version : %s' "$VERSION$EXTRAVERSION"
al@840 110 _ 'Category : %s' "$(_ $CATEGORY)"
al@828 111 itemize "$(_ 'Short desc : %s' "$SHORT_DESC")"
al@828 112 _ 'Maintainer : %s' "$MAINTAINER"
al@828 113 _ 'License : %s' "$LICENSE"
al@828 114 itemize "$(_ 'Depends : %s' "$DEPENDS")"
al@828 115 itemize "$(_ 'Suggested : %s' "$SUGGESTED")"
al@828 116 itemize "$(_ 'Build deps : %s' "$BUILD_DEPENDS")"
al@828 117 itemize "$(_ 'Wanted src : %s' "$WANTED")"
al@828 118 _ 'Web site : %s' "$WEB_SITE"
al@828 119 itemize "$(_ 'Conf. files: %s' "$CONFIG_FILES")"
al@828 120 itemize "$(_ 'Provide : %s' "$PROVIDE")"
al@828 121 _ 'Size : %s' "$SIZES"
al@828 122 itemize "$(_ 'Tags : %s' "$TAGS")"
al@828 123 } | sed '/: $/d; s|^\([^:]*\):|<b>\1:</b>|')"
al@840 124 im && footer >&2
al@828 125