]> git.pld-linux.org Git - packages/poldek.git/commitdiff
initial tool to ease common operations like:
authorElan Ruusamäe <glen@delfi.ee>
Fri, 13 Nov 2015 20:26:04 +0000 (22:26 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Fri, 13 Nov 2015 20:28:10 +0000 (22:28 +0200)
 # setup poldek ignores
 sed -i -e '/^ignore/ s/.*/ignore = #{ignore.join(" ")}/' /etc/poldek/poldek.conf

poldek-config.sh [new file with mode: 0755]

diff --git a/poldek-config.sh b/poldek-config.sh
new file mode 100755 (executable)
index 0000000..9e67ed2
--- /dev/null
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# poldek-config - poldek(1) configuration program
+#
+# poldek-config is an program to provide consistent configurability.
+# It accesses the main configuration file /etc/poldek/poldek.conf(5)
+# in a manner that is easy to use by scripted applications.
+#
+# Author: Elan Ruusamäe <glen@pld-linux.org>
+# Date: 2015-11-13
+
+usage() {
+       cat <<EOF
+Usage: $0 [options] command
+
+Commands:
+
+ignore [PACKAGE] [PACKAGE...]
+    Ignore package list - packages fits given mask will be invisible.
+
+hold [PACKAGE] [PACKAGE...]
+    Prevent package listed from being upgraded if they are already installed.
+
+EOF
+}
+
+die() {
+       echo >&2 "$PROGRAM: $*"
+       exit 1
+}
+
+option_set() {
+       local option="$1"; shift
+       sed -i -e "/^$option/ s/.*/$option = $*/" "$poldek_conf"
+}
+
+# parse command line args
+parse_arguments() {
+       t=$(getopt -o h --long help -n "$PROGRAM" -- "$@")
+       [ $? != 0 ] && exit $?
+       eval set -- "$t"
+
+       while :; do
+               case "$1" in
+               -h|--help)
+                       usage
+                       exit 0
+               ;;
+               --)
+                       shift
+                       break
+               ;;
+               *)
+                       die "Internal error: [$1] not recognized!"
+               ;;
+               esac
+               shift
+       done
+
+       if [ $# = 0 ]; then
+               usage
+               exit 1
+       fi
+
+       command=$1; shift
+       arguments="$*"
+}
+
+main() {
+       parse_arguments "$@"
+
+       case "$command" in
+               ignore|hold)
+                       option_set "$command" "$arguments"
+                       ;;
+               *)
+                       die "Unknown command: $command"
+                       ;;
+       esac
+}
+
+PROGRAM="${0##*/}"
+poldek_conf=/etc/poldek/poldek.conf
+
+main "$@"
This page took 0.062733 seconds and 4 git commands to generate.