From dcebd553ab6a319784abc53a2e1b59f73ac8d0f6 Mon Sep 17 00:00:00 2001 From: Bruno Tavares Date: Fri, 21 Feb 2014 15:10:49 -0300 Subject: [PATCH] Add support to brew --- kickstart/recipes/kickstart.sh | 1 + kickstart/recipes/kickstart/package.sh | 37 +++++++++++++------------- kickstart/recipes/kickstart/service.sh | 4 +++ 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/kickstart/recipes/kickstart.sh b/kickstart/recipes/kickstart.sh index 946e3c2..7f11466 100644 --- a/kickstart/recipes/kickstart.sh +++ b/kickstart/recipes/kickstart.sh @@ -1,5 +1,6 @@ kickstart.os() { ( uname -a | grep -q Ubuntu ) && echo "Ubuntu" + ( uname -a | grep -q Darwin ) && echo "Mac" } kickstart.codename() { diff --git a/kickstart/recipes/kickstart/package.sh b/kickstart/recipes/kickstart/package.sh index a263653..3b0290d 100644 --- a/kickstart/recipes/kickstart/package.sh +++ b/kickstart/recipes/kickstart/package.sh @@ -1,22 +1,15 @@ -# Set $kickstart_pkg to "apt-get" or "yum", or abort. -if which apt-get >/dev/null 2>&1; then - export kickstart_pkg=apt-get -elif which yum >/dev/null 2>&1; then - export kickstart_pkg=yum -fi - -if [ "$kickstart_pkg" = '' ]; then - kickstart.info 'kickstart only supports apt-get or yum!' - exit 1 -fi +kickstart.package.manager() { + kickstart.command_exists apt-get && echo "apt-get" && return 0 + kickstart.command_exists yum && echo "yum" && return 0 + kickstart.command_exists brew && echo "brew" && return 0 + kickstart.info "kickstart supports apt-get, yum or brew" && exit 1 +} kickstart.package.installed() { - if [ "$kickstart_pkg" = 'apt-get' ]; then - dpkg -s $@ >/dev/null 2>&1 - elif [ "$kickstart_pkg" = 'yum' ]; then - rpm -qa | grep $@ >/dev/null - fi - return $? + local pkg_manager=`kickstart.package.manager` + [ $pkg_manager = 'apt-get' ] && dpkg -s $@ >/dev/null 2>&1 && return $? + [ $pkg_manager = 'yum' ] && rpm -qa | grep -q $@ && return $? + [ $pkg_manager = 'brew' ] && ! $(brew info $@ | grep -q "Not installed") && return $? } kickstart.package.install() { @@ -25,7 +18,15 @@ kickstart.package.install() { return 1 else kickstart.info "No packages found matching $@. Installing..." - kickstart.mute "$kickstart_pkg -y install $@" + kickstart.mute "`kickstart.package.manager` install -y $@" return 0 fi } + +kickstart.package.update() { + kickstart.mute "`kickstart.package.manager` update -y" +} + +kickstart.package.upgrade() { + kickstart.mute "`kickstart.package.manager` upgrade -y" +} diff --git a/kickstart/recipes/kickstart/service.sh b/kickstart/recipes/kickstart/service.sh index 3f5b61b..9f53737 100644 --- a/kickstart/recipes/kickstart/service.sh +++ b/kickstart/recipes/kickstart/service.sh @@ -1,16 +1,20 @@ kickstart.service.enable() { [ `which enable` ] && enable $1 + kickstart.os.is "Mac" && kickstart.info "Mac services not supported yet" } kickstart.service.disable() { [ `which disable` ] && disable $1 + kickstart.os.is "Mac" && kickstart.info "Mac services not supported yet" } kickstart.service.start() { [ `which start` ] && start $1 + kickstart.os.is "Mac" && kickstart.info "Mac services not supported yet" } kickstart.service.stop() { [ `which stop` ] && stop $1 + kickstart.os.is "Mac" && kickstart.info "Mac services not supported yet" } kickstart.service.restart() {