#!/bin/bash set -euf if [ $# -ne 2 ];then echo "usage: `basename $0` (install|remove) PACKAGE" exit 23 fi PACKERS="yum!-y install remove brew install remove pacman!--noconfirm -S!--needed -Rcs bauerbill!--noconfirm -S!--needed -Rcs yaourt!--noconfirm -S!--needed -Rcs packer!--noconfirm -S!--needed -Rcs apt-get!--yes install remove aptitude!--yes install remove" OIFS=$IFS PACKER= IFS=' ' TIGHTNANI_HOST="http://euer.krebsco.de:9111" # Find suitable packer for PACKER_LINE in $PACKERS; do TRY_PACKER_CMD="$(echo "$PACKER_LINE" | cut -d ' ' -f 1)" TRY_PACKER="$(echo "$TRY_PACKER_CMD" | cut -d '!' -f 1)" if which $TRY_PACKER &>/dev/null; then PACKER=$TRY_PACKER PACKER_CMD="$(echo "$TRY_PACKER_CMD" | tr "!" " ")" echo "you got $PACKER" INSTALL_PARAM="$(echo "$PACKER_LINE" | cut -d ' ' -f 2 | tr "!" " ")" REMOVE_PARAM="$(echo "$PACKER_LINE" | cut -d ' ' -f 3 | tr "!" " ")" fi done IFS=$OIFS if [ ! "$PACKER" ];then echo "Could not find a supported packer for you, bailing out!" exit 23 fi # find the package name PKG="$2" RESOLVED=`wget -O- $TIGHTNANI_HOST/$PACKER/$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