spk annotate spk-ls @ rev 90

spk-ls: small fixe
author Christophe Lincoln <pankso@slitaz.org>
date Fri May 25 15:53:02 2012 +0200 (2012-05-25)
parents b84e0d36c9e0
children f017035fd1f5
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@90 70 separator
pankso@62 71 read_pkgsdesc $pkgsdesc
pankso@15 72 separator
pankso@22 73 boldify $(count_mirrored)
pankso@62 74 newline && exit 0 ;;
pankso@62 75 --extra)
pankso@62 76 [ -d "$extradb" ] || exit 1
pankso@62 77 for extra in $extradb/*
pankso@62 78 do
pankso@62 79 newline
meshca@69 80 boldify $(gettext "Extra mirror")
pankso@62 81 if [ ! -f "$extra/packages.desc" ]; then
pankso@62 82 echo "URL: $(cat $extra/mirror)"
meshca@69 83 gettext "Missing:"; colorize 31" packages.desc"
pankso@62 84 continue
pankso@62 85 fi
pankso@62 86 separator
pankso@62 87 read_pkgsdesc $extra/packages.desc
pankso@62 88 separator
meshca@70 89 boldify $(echo -n $(cat $extra/packages.$SUM | wc -l))
meshca@70 90 gettext "packages in:"; echo " $(basename $extra)"
pankso@62 91 newline
pankso@62 92 done
pankso@62 93 exit 0 ;;
pankso@15 94 --blocked)
pankso@62 95 if [ -s "$blocked" ]; then
pankso@15 96 cat $blocked
pankso@15 97 else
meshca@69 98 gettext "No blocked packages"; newline
meshca@70 99 fi
meshca@70 100 exit 0 ;;
pankso@15 101 --short)
pankso@22 102 newline
pankso@88 103 echo -n $(boldify $(gettext "Package"))
pankso@88 104 indent 28 $(boldify $(gettext "Version"))
pankso@22 105 separator
pankso@22 106 for pkg in $(ls -1 $installed)
pankso@22 107 do
pankso@88 108 source_receipt $installed/$pkg/receipt
pankso@88 109 echo -n "$(colorize 32 $pkg)"; indent 28 "$VERSION"
pankso@22 110 done
pankso@22 111 separator
pankso@15 112 boldify $(count_installed)
meshca@70 113 newline
meshca@70 114 exit 0 ;;
pankso@15 115 --*) continue ;;
pankso@15 116 *)
pankso@15 117 # List installed files by the package.
pankso@15 118 count=0
pankso@15 119 for pkg in $@
pankso@15 120 do
pankso@15 121 [ -f "$installed/$pkg/files.list" ] || continue
pankso@62 122 nb=$(cat $installed/$pkg/files.list | wc -l)
pankso@15 123 count=$(($count + 1))
pankso@15 124 [ "$count" == 1 ] && newline
pankso@62 125 # List modifiers
pankso@62 126 if [ "$modifiers" ]; then
pankso@62 127 modifiers=$installed/$pkg/modifiers
pankso@62 128 if [ -f "$modifiers" ]; then
meshca@69 129 boldify $(gettext "Modifiers for") $pkg
pankso@62 130 separator
pankso@62 131 cat $modifiers
pankso@62 132 separator && newline
pankso@62 133 else
meshca@70 134 echo $(boldify $pkg) $(gettext "package was not modified")
pankso@62 135 fi
pankso@62 136 continue
pankso@62 137 fi
meshca@70 138 boldify $(gettext "Installed files by") $pkg
pankso@15 139 separator
pankso@15 140 cat $installed/$pkg/files.list
pankso@15 141 separator
pankso@90 142 echo -n "$(gettext "Installed files by") $pkg: "
pankso@90 143 colorize 32 "$nb" && newline
meshca@70 144 done
meshca@70 145 exit 0 ;;
pankso@15 146 esac
pankso@15 147 done
pankso@15 148
pankso@15 149 #
pankso@15 150 # Parse all installed pkgs receipt.
pankso@15 151 #
pankso@15 152
pankso@18 153 count=0
pankso@18 154
pankso@18 155 newline
meshca@70 156 boldify $(gettext "Installed packages")
pankso@15 157 separator
pankso@15 158 for pkg in $installed/*
pankso@15 159 do
pankso@15 160 unset_receipt
pankso@15 161 . $pkg/receipt
pankso@18 162 count=$(($count + 1))
pankso@18 163 [ "$count" != 1 ] && newline
meshca@69 164 gettext "Package :"; colorize 32 " $PACKAGE"
pankso@15 165 receipt_info
pankso@15 166 done
pankso@15 167 separator
pankso@22 168 boldify $(count_installed) && newline
pankso@15 169 exit 0