spk annotate spk-ls @ rev 15
Add spk-ls (list pkgs and files installed ba packages)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 11:32:21 2012 +0200 (2012-05-15) |
parents | |
children | 57ae420bd1c2 |
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@15 | 9 #. /usr/lib/slitaz/libspk.sh |
pankso@15 | 10 . lib/libspk.sh |
pankso@15 | 11 |
pankso@15 | 12 # |
pankso@15 | 13 # Functions |
pankso@15 | 14 # |
pankso@15 | 15 |
pankso@15 | 16 # Help and usage |
pankso@15 | 17 usage() { |
pankso@15 | 18 name=$(basename $0) |
pankso@15 | 19 cat << EOT |
pankso@15 | 20 |
pankso@15 | 21 $(boldify $(gettext "Usage:")) $name [packages|--options] |
pankso@15 | 22 |
pankso@15 | 23 $(gettext "List packages or installed files by packages") |
pankso@15 | 24 |
pankso@15 | 25 $(boldify $(gettext "Options:")) |
pankso@15 | 26 --count $(gettext "Display the number of installed packages") |
pankso@15 | 27 --mirror $(gettext "List all the packages on mirror") |
pankso@15 | 28 --blocked $(gettext "List all blocked packages") |
pankso@15 | 29 --short ls: $(gettext "Short list of installed packages") |
pankso@15 | 30 --debug $(gettext "Display some usefull debug information") |
pankso@15 | 31 |
pankso@15 | 32 $(boldify $(gettext "Examples:")) |
pankso@15 | 33 $name package1 package2 packageN |
pankso@15 | 34 $name --count |
pankso@15 | 35 |
pankso@15 | 36 EOT |
pankso@15 | 37 exit 0 |
pankso@15 | 38 } |
pankso@15 | 39 |
pankso@15 | 40 # |
pankso@15 | 41 # Handle --options |
pankso@15 | 42 # |
pankso@15 | 43 |
pankso@15 | 44 for opt in $@ |
pankso@15 | 45 do |
pankso@15 | 46 case "$opt" in |
pankso@15 | 47 *usage|*help) usage ;; |
pankso@15 | 48 --count) |
pankso@15 | 49 count_installed |
pankso@15 | 50 count_mirrored |
pankso@15 | 51 exit 0 ;; |
pankso@15 | 52 --mirror) |
pankso@15 | 53 IFS="|" |
pankso@15 | 54 cat $pkgsdesc | while read package version desc category |
pankso@15 | 55 do |
pankso@15 | 56 echo "" |
pankso@15 | 57 gettext "Package :"; echo " $package" |
pankso@15 | 58 gettext "Version :"; echo "$version" |
pankso@15 | 59 gettext "Short desc :"; echo "$desc" |
pankso@15 | 60 done && unset IFS |
pankso@15 | 61 separator |
pankso@15 | 62 count_mirrored |
pankso@15 | 63 echo "" && exit 0 ;; |
pankso@15 | 64 --blocked) |
pankso@15 | 65 if [ -f "$blocked" ]; then |
pankso@15 | 66 cat $blocked |
pankso@15 | 67 else |
pankso@15 | 68 gettext "No blocked packages"; echo "" |
pankso@15 | 69 fi && exit 0 ;; |
pankso@15 | 70 --short) |
pankso@15 | 71 ls -1 $installed |
pankso@15 | 72 boldify $(count_installed) |
pankso@15 | 73 exit 0 ;; |
pankso@15 | 74 --*) continue ;; |
pankso@15 | 75 *) |
pankso@15 | 76 # List installed files by the package. |
pankso@15 | 77 count=0 |
pankso@15 | 78 for pkg in $@ |
pankso@15 | 79 do |
pankso@15 | 80 [ -f "$installed/$pkg/files.list" ] || continue |
pankso@15 | 81 count=$(($count + 1)) |
pankso@15 | 82 [ "$count" == 1 ] && newline |
pankso@15 | 83 boldify $(gettext "Installed files by"; echo " $pkg") |
pankso@15 | 84 separator |
pankso@15 | 85 cat $installed/$pkg/files.list |
pankso@15 | 86 files=$(wc -l $installed/$pkg/files.list | cut -d " " -f 1) |
pankso@15 | 87 separator |
pankso@15 | 88 gettext "Installed files by"; echo " $pkg : $files" |
pankso@15 | 89 newline |
pankso@15 | 90 done && exit 0 ;; |
pankso@15 | 91 esac |
pankso@15 | 92 done |
pankso@15 | 93 |
pankso@15 | 94 # |
pankso@15 | 95 # Parse all installed pkgs receipt. |
pankso@15 | 96 # |
pankso@15 | 97 |
pankso@15 | 98 boldify "$(gettext "Installed packages")" |
pankso@15 | 99 separator |
pankso@15 | 100 for pkg in $installed/* |
pankso@15 | 101 do |
pankso@15 | 102 unset_receipt |
pankso@15 | 103 . $pkg/receipt |
pankso@15 | 104 newline |
pankso@15 | 105 receipt_info |
pankso@15 | 106 done |
pankso@15 | 107 separator |
pankso@15 | 108 count_installed && newline |
pankso@15 | 109 exit 0 |