template_setup/install/install.sh
deathbybandaid cd45eb0940 test
2022-03-12 15:52:48 -05:00

95 lines
2.1 KiB
Bash

#!/bin/bash
s
## These are the colors used throughout the script.
COL_RED='\e[1;31m%s\e[0m\n'
COL_GREEN='\e[1;32m%s\e[0m\n'
COL_YELLOW='\e[1;33m%s\e[0m\n'
COL_BLUE='\e[1;34m%s\e[0m\n'
COL_MAGENTA='\e[1;35m%s\e[0m\n'
COL_CYAN='\e[1;36m%s\e[0m\n'
COL_ORANGE='\e[38;5;166m%s\e[0m\n'
COL_LIGHT_BLUE='\e[38;5;111m%s\e[0m\n'
is_command() {
local check_command="$1"
command -v "${check_command}" >/dev/null 2>&1
}
git_update() {
local git_name="$1"
local git_path="$2"
local git_repo="$3"
if [ ! -d "$git_path" ]; then
printf "$COL_YELLOW" "* Installing $git_name"
git clone --quiet $git_repo $git_path
else
printf "$COL_YELLOW" "* Updating $git_name"
git -C $git_path pull
fi
}
should_apt_last_update() {
LAST_UPDATED=$( stat --format="%X" /var/cache/apt/pkgcache.bin )
UNIX_TIME=$( date +%s )
TIME_DIFF=$(( UNIX_TIME - LAST_UPDATED ))
if [[ "${TIME_DIFF}" -gt 43200 ]]
then
# 0 = true
return 0
else
# 1 = false
return 1
fi
}
get_pkg_mgr() {
if is_command apt-get ; then
echo "apt-get"
elif is_command rpm ; then
# Then check if dnf or yum is the package manager
if is_command dnf ; then
echo "dnf"
else
echo "yum"
fi
fi
}
install_pkg() {
# package to install
local pkg_to_install="$1"
# Get Command language
PKG_MANAGER=$( get_pkg_mgr )
# Run apt-get update for distros that use apt-get
if [ "$PKG_MANAGER" == "apt-get" ] ; then
if should_apt_last_update ; then
"${PKG_MANAGER} update"
fi
fi
# Install the package
local PKG_INSTALL=("${PKG_MANAGER}" install -y)
"${PKG_INSTALL[@]}" "${pkg_to_install}"
}
printf "$COL_LIGHT_BLUE" "Checking For git"
if is_command git;
then
printf "$COL_YELLOW" "* git Is Already Installed."
else
printf "$COL_YELLOW" "* Installing git"
install_pkg git
fi
printf "$COL_LIGHT_BLUE" "Checking for installation script"
template_setup_path="/etc/template_setup"
template_setup_git="https://git.deathbybandaid.net/deathbybandaid/template_setup.git"
git_update "template_setup" "$template_setup_path" "$template_setup_git"
printf "$COL_LIGHT_BLUE" "Running installation"
bash "$template_setup_path/template_setup.sh"