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