2018-02-21 23:15:49 -05:00
|
|
|
#!/bin/bash
|
2021-02-04 19:05:51 -05:00
|
|
|
# Description: Debian Package Manager
|
2018-02-27 00:15:14 -05:00
|
|
|
set -e
|
2018-02-21 23:15:49 -05:00
|
|
|
|
|
|
|
function _apt {
|
|
|
|
local pkg=$1
|
|
|
|
if ! dpkg -s $pkg >/dev/null 2>&1; then
|
2018-02-28 01:25:27 -05:00
|
|
|
if [ -z "$__apt_updated" ]; then
|
2020-06-24 21:31:00 -04:00
|
|
|
_apt_update
|
2018-02-28 01:25:27 -05:00
|
|
|
fi
|
2018-02-21 23:15:49 -05:00
|
|
|
_run "[apt] Install $pkg" sudo apt-get install -y $1
|
|
|
|
else
|
|
|
|
echo "[apt] $pkg is already installed, skipping."
|
|
|
|
fi
|
|
|
|
}
|
2018-02-23 16:17:52 -05:00
|
|
|
|
2020-06-24 21:31:00 -04:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2018-02-23 16:17:52 -05:00
|
|
|
_apt software-properties-common
|
|
|
|
|
|
|
|
function _ppa {
|
2020-06-24 21:31:00 -04:00
|
|
|
_apt_source ppa:$1
|
2018-02-23 16:17:52 -05:00
|
|
|
}
|