From 1b494ab77198a6cbb9c06a13435159641e2dc0c5 Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Thu, 19 Apr 2012 12:55:20 -0400 Subject: contrib: rename bash scripts: .in -> .sh.in For consistency with the scripts/ directory, ensure that all bash scripts use the same pre-build suffix. Signed-off-by: Dave Reisner --- contrib/pacsysclean.sh.in | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 contrib/pacsysclean.sh.in (limited to 'contrib/pacsysclean.sh.in') diff --git a/contrib/pacsysclean.sh.in b/contrib/pacsysclean.sh.in new file mode 100755 index 00000000..162530ef --- /dev/null +++ b/contrib/pacsysclean.sh.in @@ -0,0 +1,62 @@ +#!/bin/bash + +# pacsysclean - Sort installed packages by increasing installed size. Useful for system clean-up. + +declare -r myname='pacsysclean' +declare -r myver='@PACKAGE_VERSION@' + +PACMAN_OPTS= + +usage() { + echo "$myname - Sort installed packages by increasing installed size." + echo + echo "Usage: $myname [options]" + echo + echo "Options:" + echo " -o Specify custom pacman query options (e.g., dt)" + echo " -h, --help Show this help message and exit" +} + +version() { + printf "%s %s\n" "$myname" "$myver" + echo 'Copyright (C) 2011 Eric BĂ©langer ' +} + + +if [ -n "$1" ]; then + case "$1" in + -o) PACMAN_OPTS="${2}" ;; + -h|--help) usage; exit 0 ;; + -V|--version) version; exit 0 ;; + *) usage; exit 1 ;; + esac +fi + +IFS=$'\n' +name="^Name.*: (.*)$" +size="^Installed Size.*: (.*) KiB$" + +[[ $PACMAN_OPTS != -* ]] && PACMAN_OPTS="-$PACMAN_OPTS" + +for line in $(LANG=C pacman -Qi $PACMAN_OPTS); do + if [[ $line =~ $name ]]; then + printf "%s\t" ${BASH_REMATCH[1]} + elif [[ $line =~ $size ]]; then + printf "%s\n" ${BASH_REMATCH[1]} + fi +done | sort -g -k2 | awk ' +BEGIN { + split("KiB MiB GiB TiB PiB EiB ZiB YiB", suffix) +} +function format_size(size) { + count = 1 + while (size + 0 > 1024) { + size /= 1024 + count++ + } + sizestr = sprintf("%.2f %s", size, suffix[count]) + return sizestr +} +{ + printf("%s\t%s\n", format_size($2), $1); +}' -- cgit v1.2.3-54-g00ecf