summaryrefslogtreecommitdiffstats
path: root/ship/src/punani
diff options
context:
space:
mode:
Diffstat (limited to 'ship/src/punani')
-rwxr-xr-xship/src/punani43
1 files changed, 43 insertions, 0 deletions
diff --git a/ship/src/punani b/ship/src/punani
index ceabd667..61043bc0 100755
--- a/ship/src/punani
+++ b/ship/src/punani
@@ -1,4 +1,47 @@
#! /bin/sh
#@info
#@include punani
+punani(){
+ _punani_usage='punani {install,remove,has} 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
+ ;;
+ *)
+ error "bad action: $ACTION"
+ die "usage: $_punani_usage"
+ esac
+ done
+}
punani "$@"