spk annotate spk-ls @ rev 22
Use colorize in some case and improve spk-ls --short
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue May 15 16:54:28 2012 +0200 (2012-05-15) |
parents | e5d4c5d3ccf4 |
children | daf5adaaa87b |
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@22 | 28 --short $(gettext "Short list of installed packages") |
pankso@18 | 29 --root $(gettext "Set the root file system path") |
pankso@22 | 30 --color=NB $(gettext "Set package name color in list") |
pankso@15 | 31 --debug $(gettext "Display some usefull debug information") |
pankso@15 | 32 |
pankso@15 | 33 $(boldify $(gettext "Examples:")) |
pankso@15 | 34 $name package1 package2 packageN |
pankso@22 | 35 $name --short --color=33 |
pankso@15 | 36 |
pankso@15 | 37 EOT |
pankso@15 | 38 exit 0 |
pankso@15 | 39 } |
pankso@15 | 40 |
pankso@15 | 41 # |
pankso@15 | 42 # Handle --options |
pankso@15 | 43 # |
pankso@15 | 44 |
pankso@15 | 45 for opt in $@ |
pankso@15 | 46 do |
pankso@15 | 47 case "$opt" in |
pankso@15 | 48 *usage|*help) usage ;; |
pankso@15 | 49 --count) |
pankso@15 | 50 count_installed |
pankso@15 | 51 count_mirrored |
pankso@15 | 52 exit 0 ;; |
pankso@15 | 53 --mirror) |
pankso@15 | 54 IFS="|" |
pankso@15 | 55 cat $pkgsdesc | while read package version desc category |
pankso@15 | 56 do |
pankso@22 | 57 newline |
pankso@22 | 58 gettext "Package :"; colorize " $package" 32 |
pankso@15 | 59 gettext "Version :"; echo "$version" |
pankso@15 | 60 gettext "Short desc :"; echo "$desc" |
pankso@15 | 61 done && unset IFS |
pankso@15 | 62 separator |
pankso@22 | 63 boldify $(count_mirrored) |
pankso@15 | 64 echo "" && exit 0 ;; |
pankso@15 | 65 --blocked) |
pankso@15 | 66 if [ -f "$blocked" ]; then |
pankso@15 | 67 cat $blocked |
pankso@15 | 68 else |
pankso@15 | 69 gettext "No blocked packages"; echo "" |
pankso@15 | 70 fi && exit 0 ;; |
pankso@15 | 71 --short) |
pankso@22 | 72 newline |
pankso@22 | 73 boldify "$(gettext "Installed packages")" |
pankso@22 | 74 separator |
pankso@22 | 75 for pkg in $(ls -1 $installed) |
pankso@22 | 76 do |
pankso@22 | 77 . $installed/$pkg/receipt |
pankso@22 | 78 echo -n "$(colorize "$pkg" 32)"; indent 28 " $VERSION" |
pankso@22 | 79 done |
pankso@22 | 80 separator |
pankso@15 | 81 boldify $(count_installed) |
pankso@22 | 82 newline && exit 0 ;; |
pankso@15 | 83 --*) continue ;; |
pankso@15 | 84 *) |
pankso@15 | 85 # List installed files by the package. |
pankso@15 | 86 count=0 |
pankso@15 | 87 for pkg in $@ |
pankso@15 | 88 do |
pankso@15 | 89 [ -f "$installed/$pkg/files.list" ] || continue |
pankso@15 | 90 count=$(($count + 1)) |
pankso@15 | 91 [ "$count" == 1 ] && newline |
pankso@15 | 92 boldify $(gettext "Installed files by"; echo " $pkg") |
pankso@15 | 93 separator |
pankso@15 | 94 cat $installed/$pkg/files.list |
pankso@15 | 95 files=$(wc -l $installed/$pkg/files.list | cut -d " " -f 1) |
pankso@15 | 96 separator |
pankso@15 | 97 gettext "Installed files by"; echo " $pkg : $files" |
pankso@15 | 98 newline |
pankso@15 | 99 done && exit 0 ;; |
pankso@15 | 100 esac |
pankso@15 | 101 done |
pankso@15 | 102 |
pankso@15 | 103 # |
pankso@15 | 104 # Parse all installed pkgs receipt. |
pankso@15 | 105 # |
pankso@15 | 106 |
pankso@18 | 107 count=0 |
pankso@18 | 108 |
pankso@18 | 109 newline |
pankso@15 | 110 boldify "$(gettext "Installed packages")" |
pankso@15 | 111 separator |
pankso@15 | 112 for pkg in $installed/* |
pankso@15 | 113 do |
pankso@15 | 114 unset_receipt |
pankso@15 | 115 . $pkg/receipt |
pankso@18 | 116 count=$(($count + 1)) |
pankso@18 | 117 [ "$count" != 1 ] && newline |
pankso@22 | 118 gettext "Package :"; colorize " $PACKAGE" 32 |
pankso@15 | 119 receipt_info |
pankso@15 | 120 done |
pankso@15 | 121 separator |
pankso@22 | 122 boldify $(count_installed) && newline |
pankso@15 | 123 exit 0 |