#!/bin/bash set -e function _apt { local pkg=$1 if ! dpkg -s $pkg >/dev/null 2>&1; then if [ -z "$__apt_updated" ]; then _apt_update fi _run "[apt] Install $pkg" sudo apt-get install -y $1 else echo "[apt] $pkg is already installed, skipping." fi } function _apt_update { _run "Update APT cache" sudo apt-get update __apt_updated=yes } function _apt_source { _run "[apt] Add Source: $1" sudo add-apt-repository -u -y "$1" } function _dpkg { local pkg=$1 local url=$2 if ! dpkg -s $pkg >/dev/null 2>&1; then local download=$(mktemp -d) _run "[dpkg] Downloading $pkg" curl -q -o "$download/$pkg.deb" "$url" _run "[dpkg] Installing $pkg" sudo dpkg -i "$download/$pkg.deb" rm -rf "$download" else echo "[dpkg] $pkg is already installed, skipping." fi } _apt software-properties-common function _ppa { _apt_source ppa:$1 }