summaryrefslogtreecommitdiffstats
path: root/punani/bin/punani
blob: 7be91db4a74fb6665bf78d54cd58747ca242d8af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#! /bin/sh
set -euf

TIGHTNANI_HOST="${TIGHTNANI_HOST-http://euer.krebsco.de:9111}"

if [ $# -ne 2 ];then
  echo "usage: `basename $0` (install|remove) PACKAGE"
  exit 23
fi

## find package manager
if ! :; then : # dummy, so the rest has a common format

elif for PACKER_CMD in yum
    do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then
  INSTALL_PARAM='-y install'
  REMOVE_PARAM='-y remove'

elif for PACKER_CMD in brew
    do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then
  INSTALL_PARAM='install'
  REMOVE_PARAM='remove'

elif for PACKER_CMD in bauerbill packer yaourt pacman
    do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then
  INSTALL_PARAM='--noconfirm -S'
  REMOVE_PARAM='--needed -Rcs'

elif for PACKER_CMD in aptitude apt-get
    do type $PACKER_CMD 2>/dev/null 1>&2 && break; done; then
  INSTALL_PARAM='--yes install'
  REMOVE_PARAM='--yes remove'

else
  echo "Error 2: no known package manager found; no punani for you!" >&2
  exit 23
fi


# find the package name
PKG="$2"
RESOLVED=`wget -O- $TIGHTNANI_HOST/$PACKER_CMD/$PKG 2>/dev/null`
if [ ! "$RESOLVED" ];then
  echo "Could not resolve your requested package, bailing out!"
  exit 23
fi
case "$1" in 
  install)
    exec $PACKER_CMD $INSTALL_PARAM $RESOLVED
    ;;
  remove)
    exec $PACKER_CMD $REMOVE_PARAM $RESOLVED
    ;;
  *)
    echo "usage: `basename $0` (install|remove) PACKAGE"
esac