summaryrefslogtreecommitdiffstats
path: root/punani
diff options
context:
space:
mode:
authorChinaman <root@chinaman>2011-09-06 19:47:58 +0200
committerChinaman <root@chinaman>2011-09-06 19:47:58 +0200
commit108f3616e3f4958752d881192ef29e5fc4c2b045 (patch)
tree3c67478c852265219b72e6e1b05467d7065b7ba8 /punani
parentb2d65500160bcdf7abb2bf985f7da582b810e25c (diff)
parentc3bc5a6d16868c121aca780f3109155797b51d76 (diff)
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'punani')
-rwxr-xr-xpunani/bin/punani90
1 files changed, 90 insertions, 0 deletions
diff --git a/punani/bin/punani b/punani/bin/punani
new file mode 100755
index 00000000..7af6f0f8
--- /dev/null
+++ b/punani/bin/punani
@@ -0,0 +1,90 @@
+#! /bin/sh
+#
+# punani - filesystem scienteer
+#
+# Engineering Operations
+# -E -i spec insert a package to the target filesystem
+# -E -r spec remove a package
+#
+
+godmode() {
+ if test "${nosudo-false}" != true -a `id -u` != 0; then
+ echo "Warning: we require god mode..." >&2
+ exec sudo "$0" "$@"
+ exit 23 # go to hell
+ fi
+}
+
+if pacman --version 2>/dev/null | fgrep -q Pacman; then
+ system="${system+$system, }arch-like"
+fi
+
+case "$system" in
+ (*arch-like*)
+ punani_Engineer_insert() {
+ pacman -Sy "$1"
+ }
+ punani_Engineer_remove() {
+ pacman -Rcs "$1"
+ }
+ ;;
+ (*)
+ email='krebs@syntax-fehler.de'
+ irc_host='irc.freenode.org'
+ irc_channel='#tincspasm'
+ cat>&2<<EOF
+Error 2: Your System Will Be Supported ASAP
+1. send us a bug report
+1.1 your operating system's name and version
+1.2 this message: $0 $*
+1.3 mailto:$email
+2. join the relevant IRC channel
+2.1 /connect $irc_host
+2.2 /join $irc_channel
+EOF
+ exit 23
+esac
+
+punani() {
+ ns=punani
+ role=undefined
+ while getopts 'fhvSopEir' OPT; do
+ case $OPT in
+ (f) force=true; continue;;
+ (h) hard=true; continue;;
+ (v) verbose=true; continue;;
+ esac
+ case ${role-Manager} in
+ (Engineer)
+ case $OPT in
+ (i) command="${ns}_${role}_insert";;
+ (r) command="${ns}_${role}_remove";;
+ (*)
+ echo 'Error 1: You are made of stupid!' >&2
+ exit 23;;
+ esac
+ ;;
+ (undefined)
+ case $OPT in
+ (E) role=Engineer;;
+ (*)
+ exit 23;;
+ esac
+ ;;
+ (*)
+ echo 'Error 1: You are made of stupid!' >&2
+ exit 23
+ ;;
+ esac
+ done
+}
+
+punani "$@"
+shift `echo $OPTIND-1 | bc`
+
+case $role in
+ (Engineer) godmode;;
+esac
+for name; do
+ "$command" "$name"
+done