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
|