summaryrefslogtreecommitdiffstats
path: root/ship/src/punani
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2013-11-19 08:35:51 +0100
committermakefu <github@syntax-fehler.de>2013-11-19 08:35:51 +0100
commit5788b95fe7834d3049df9de1009f3d8dbc34fea2 (patch)
tree76675a9579c7c5e269825bfa73d29fe5256b8afb /ship/src/punani
parentc15a8d15e910a39a641b21df08e13325a0e29293 (diff)
parent6f956cfe65ee00871bc9be19b2acadabb6638a69 (diff)
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'ship/src/punani')
-rwxr-xr-xship/src/punani46
1 files changed, 46 insertions, 0 deletions
diff --git a/ship/src/punani b/ship/src/punani
index ceabd667..2c956f02 100755
--- a/ship/src/punani
+++ b/ship/src/punani
@@ -1,4 +1,50 @@
#! /bin/sh
#@info
#@include punani
+punani(){
+ _punani_usage='punani {install,remove,has,owner} PACKAGE...'
+ _punani_select_packer || die 'no package manager found; no punani for you!'
+
+ ACTION="$1"; shift
+
+ if test $# = 0; then
+ error 'no PACKAGE specified.'
+ die "usage: $_punani_usage"
+ fi
+
+ for PKG; do
+ RES="`_punani_resolve_package $PKG`" ||
+ die "could not resolve '$PKG'; no punani for you!"
+
+ case "$ACTION" in
+ install)
+ if punani_has $RES; then
+ info "$RES already installed, skipping"
+ else
+ punani_install $RES || error "cannot install $RES with $PACKER"
+ fi
+ ;;
+ remove)
+ if ! punani_has $RES; then
+ info "$RES not installed, skipping"
+ else
+ punani_remove $RES || error "cannot install $RES with $PACKER"
+ fi
+ ;;
+ has)
+ if punani_has $RES; then
+ info "$RES is installed"
+ else
+ info "$RES is not installed"
+ fi
+ ;;
+ owner)
+ punani_owner $RES
+ ;;
+ *)
+ error "bad action: $ACTION"
+ die "usage: $_punani_usage"
+ esac
+ done
+}
punani "$@"