dotfiles/recipes/brew

54 lines
1.4 KiB
Bash

#!/bin/bash
# Description: Package manager - Homebrew on OSX, Linuxbrew on Linux
set -e
function _brew {
local pkg=$1
if ! brew ls $pkg >/dev/null 2>&1; then
_run "[brew] Install $pkg" brew install $@
else
echo "[brew] $pkg is already installed, skipping."
fi
}
function _brew_cask {
local pkg=$1
if ! brew cask list $pkg >/dev/null 2>&1; then
_run "[brew cask] Install $pkg" brew install --cask $@
else
echo "[brew cask] $pkg is already installed, skipping."
fi
}
function _brew_tap {
local tap=$1
if ! brew tap | grep "^$tap$" >/dev/null 2>&1; then
_run "[brew tap] Tap repository $tap" brew tap $@
else
echo "[brew tap] $tap is already present, skipping."
fi
}
case $_PLATFORM in
darwin)
if ! which brew >/dev/null; then
_run "Install brew" /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
;;
arch)
_recipe _arch
_yay brew-git
;;
debian)
_recipe _apt
_recipe _path
for pkg in build-essential curl file gawk git python-setuptools; do
_apt $pkg
done
if ! [ -d ~/.linuxbrew ]; then
_run "Install brew" git clone -q https://github.com/Linuxbrew/brew.git ~/.linuxbrew
fi
_path "$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin"
;;
esac