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