Last active
February 5, 2021 08:35
-
-
Save jiz4oh/75ec7d4248e8626d9b864b063adb18b9 to your computer and use it in GitHub Desktop.
usefull shell scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function info() { echo -e "\033[32m[info] $*\033[0m"; } | |
function warn() { echo -e "\033[33m[warn] $*\033[0m"; } | |
function error() { | |
echo -e "\033[31m[error] $*\033[0m" | |
exit 1 | |
} | |
check_sys() { | |
OS=$(uname -s) | |
if [ "${OS}" == "Darwin" ]; then | |
release="Darwin" | |
elif [ "${OS}" == "Linux" ]; then | |
if [ -f /etc/centos-release ]; then | |
release="centos" | |
elif [ -f /etc/redhat-release ]; then | |
release="rhel" | |
elif cat /etc/issue | grep -q -E -i "centos"; then | |
release="centos" | |
elif cat /etc/issue | grep -q -E -i "red hat|redhat"; then | |
release="rhel" | |
elif cat /etc/issue | grep -q -E -i "debian"; then | |
release="debian" | |
elif cat /etc/issue | grep -q -E -i "ubuntu"; then | |
release="ubuntu" | |
elif cat /proc/version | grep -q -E -i "centos"; then | |
release="centos" | |
elif cat /proc/version | grep -q -E -i "red hat|redhat"; then | |
release="rhel" | |
elif cat /proc/version | grep -q -E -i "debian"; then | |
release="debian" | |
elif cat /proc/version | grep -q -E -i "ubuntu"; then | |
release="ubuntu" | |
elif [ -f /etc/os-release ]; then | |
release=$(grep -E "^ID" /etc/os-release | awk -F '=' '{print $2}') | |
else | |
release="Unknown" | |
fi | |
else | |
release="${OS}" | |
fi | |
} | |
# package manager install | |
pm_install() { | |
err_log_path=install_err.log | |
err_msg="Some thing is wrong, please run\n\n cat $err_log_path \n\nto view." | |
case $release in | |
debian | ubuntu | devuan) | |
for i in $*; do | |
info "Installing $i" | |
apt-get install -y "$i" -qq --no-install-recommends >/dev/null 2>> $err_log_path || error $err_msg | |
done | |
;; | |
centos | rhel) | |
for i in $*; do | |
info "Installing $i" | |
yum install -y "$i" -q >/dev/null 2>> $err_log_path || error $err_msg | |
done | |
;; | |
Darwin) | |
for i in $*; do | |
info "Installing $i" | |
brew ls --versions asdfasdf >/dev/null || brew install "$i" -q >/dev/null 2>>$err_log_path || error $err_msg | |
done | |
;; | |
*) | |
error 'Unknown system, exit!' | |
;; | |
esac | |
} | |
check_depends() { | |
declare -a MISSING_PACKAGES | |
for depend in $*; do | |
command -v $depend &>/dev/null || MISSING_PACKAGES+=($depend) | |
done | |
if [ ! -z "${MISSING_PACKAGES}" ]; then | |
warn "The following is missing on the host and needs " | |
warn "to be installed and configured before running this script again" | |
error "missing: ${MISSING_PACKAGES[@]}" | |
fi | |
} | |
debian_version_codename() { | |
if [ -f /etc/os-release ]; then | |
grep "VERSION_CODENAME" /etc/os-release | awk -F '=' '{print $2}' | |
else | |
dpkg -s lsb-release &>/dev/null | |
if [ !$? ]; then | |
apt-get install -y lsb-release -qq --no-install-recommends | |
fi | |
lsb_release -cs | |
fi | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment