spk annotate spk-ls @ rev 19
add: spk and some improvments
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 14:20:23 2012 +0200 (2012-05-15) |
parents | 57ae420bd1c2 |
children | c067cf3860e1 |
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@15 | 25 --count $(gettext "Display the number of installed packages") |
pankso@15 | 26 --mirror $(gettext "List all the packages on mirror") |
pankso@15 | 27 --blocked $(gettext "List all blocked packages") |
pankso@15 | 28 --short ls: $(gettext "Short list of installed packages") |
pankso@18 | 29 --root $(gettext "Set the root file system path") |
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@18 | 98 count=0 |
pankso@18 | 99 |
pankso@18 | 100 newline |
pankso@15 | 101 boldify "$(gettext "Installed packages")" |
pankso@15 | 102 separator |
pankso@15 | 103 for pkg in $installed/* |
pankso@15 | 104 do |
pankso@15 | 105 unset_receipt |
pankso@15 | 106 . $pkg/receipt |
pankso@18 | 107 count=$(($count + 1)) |
pankso@18 | 108 [ "$count" != 1 ] && newline |
pankso@18 | 109 gettext "Package :"; echo " $PACKAGE" |
pankso@15 | 110 receipt_info |
pankso@15 | 111 done |
pankso@15 | 112 separator |
pankso@15 | 113 count_installed && newline |
pankso@15 | 114 exit 0 |