spk view spk-ls @ rev 84

Dont say system is up-to-date if we have blocked packages
author Christophe Lincoln <pankso@slitaz.org>
date Thu May 24 19:04:21 2012 +0200 (2012-05-24)
parents 17e896f1d41d
children b84e0d36c9e0
line source
1 #!/bin/sh
2 #
3 # Spk-ls - List SliTaz packages and files. Read the README before adding or
4 # modifing any code in spk!
5 #
6 # Copyright (C) SliTaz GNU/Linux - BSD License
7 # Author: See AUTHORS files
8 #
9 . /usr/lib/slitaz/libspk.sh
11 #
12 # Functions
13 #
15 # Help and usage
16 usage() {
17 name=$(basename $0)
18 cat << EOT
20 $(boldify $(gettext "Usage:")) $name [packages|--options]
22 $(gettext "List packages or installed files by packages")
24 $(boldify $(gettext "Options:"))
25 --count $(gettext "Display the number of installed packages")
26 --mirror $(gettext "List all the packages on mirror")
27 --extra $(gettext "List packages on extra mirrors ")
28 --blocked $(gettext "List all blocked packages")
29 --short $(gettext "Short packages list format")
30 --modifiers $(gettext "List package modifiers")
31 --root= $(gettext "Set the root file system path")
32 --color=NB $(gettext "Set package name color in list")
33 --debug $(gettext "Display some useful debug information")
35 $(boldify $(gettext "Examples:"))
36 $name package1 package2 packageN
37 $name --short --color=33
39 EOT
40 exit 0
41 }
43 #
44 # Handle --options
45 #
47 for opt in $@
48 do
49 case "$opt" in
50 *usage|*help) usage ;;
51 --count)
52 count_installed
53 count_mirrored
54 exit 0 ;;
55 --mirror)
56 newline
57 boldify $(gettext "Mirror") $(cat $mirrorurl)
58 read_pkgsdesc $pkgsdesc
59 separator
60 boldify $(count_mirrored)
61 newline && exit 0 ;;
62 --extra)
63 [ -d "$extradb" ] || exit 1
64 for extra in $extradb/*
65 do
66 newline
67 boldify $(gettext "Extra mirror")
68 if [ ! -f "$extra/packages.desc" ]; then
69 echo "URL: $(cat $extra/mirror)"
70 gettext "Missing:"; colorize 31" packages.desc"
71 continue
72 fi
73 separator
74 read_pkgsdesc $extra/packages.desc
75 separator
76 boldify $(echo -n $(cat $extra/packages.$SUM | wc -l))
77 gettext "packages in:"; echo " $(basename $extra)"
78 newline
79 done
80 exit 0 ;;
81 --blocked)
82 if [ -s "$blocked" ]; then
83 cat $blocked
84 else
85 gettext "No blocked packages"; newline
86 fi
87 exit 0 ;;
88 --short)
89 newline
90 boldify $(gettext "Installed packages")
91 separator
92 for pkg in $(ls -1 $installed)
93 do
94 . $installed/$pkg/receipt
95 echo -n "$(colorize 32 $pkg)"; indent 28 " $VERSION"
96 done
97 separator
98 boldify $(count_installed)
99 newline
100 exit 0 ;;
101 --*) continue ;;
102 *)
103 # List installed files by the package.
104 count=0
105 for pkg in $@
106 do
107 [ -f "$installed/$pkg/files.list" ] || continue
108 nb=$(cat $installed/$pkg/files.list | wc -l)
109 count=$(($count + 1))
110 [ "$count" == 1 ] && newline
111 # List modifiers
112 if [ "$modifiers" ]; then
113 modifiers=$installed/$pkg/modifiers
114 if [ -f "$modifiers" ]; then
115 boldify $(gettext "Modifiers for") $pkg
116 separator
117 cat $modifiers
118 separator && newline
119 else
120 echo $(boldify $pkg) $(gettext "package was not modified")
121 fi
122 continue
123 fi
124 boldify $(gettext "Installed files by") $pkg
125 separator
126 cat $installed/$pkg/files.list
127 separator
128 echo $(gettext "Installed files by") $pkg:
129 colorize 32 $nb && newline
130 done
131 exit 0 ;;
132 esac
133 done
135 #
136 # Parse all installed pkgs receipt.
137 #
139 count=0
141 newline
142 boldify $(gettext "Installed packages")
143 separator
144 for pkg in $installed/*
145 do
146 unset_receipt
147 . $pkg/receipt
148 count=$(($count + 1))
149 [ "$count" != 1 ] && newline
150 gettext "Package :"; colorize 32 " $PACKAGE"
151 receipt_info
152 done
153 separator
154 boldify $(count_installed) && newline
155 exit 0