#!/usr/bin/env bash os_detect() { if [ -f /etc/os-release ]; then . /etc/os-release OS_ID=$ID OS_VERSION_ID=$VERSION_ID else OS_ID="unknown" OS_VERSION_ID="unknown" fi export LC_ALL=C.UTF-8 export LANG=C.UTF-8 case "$OS_ID" in debian|ubuntu) PKG_MANAGER="apt-get" PKG_UPDATE="$PKG_MANAGER update" PKG_INSTALL="$PKG_MANAGER install -y" PKG_CLEAN="$PKG_MANAGER autoremove -y && $PKG_MANAGER clean" BUILD_TOOLS="build-essential" PYTHON_PKG="python3 python3-pip" ;; fedora|centos|rhel) PKG_MANAGER="dnf" PKG_UPDATE="$PKG_MANAGER check-update" PKG_INSTALL="$PKG_MANAGER install -y" PKG_CLEAN="$PKG_MANAGER autoremove -y && $PKG_MANAGER clean all" BUILD_TOOLS="@development-tools" PYTHON_PKG="python3 python3-pip" ;; alpine) PKG_MANAGER="apk" PKG_UPDATE="$PKG_MANAGER update" PKG_INSTALL="$PKG_MANAGER add" PKG_CLEAN="rm -rf /var/cache/apk/*" BUILD_TOOLS="build-base" PYTHON_PKG="python3 py3-pip" ;; *) msg_error "Unsupported OS: $OS_ID" exit 1 ;; esac } dynr_initialize_node() { msg_info "Synchronizing $OS_ID Environment..." $PKG_UPDATE >/dev/null 2>&1 if [[ "$OS_ID" == "debian" || "$OS_ID" == "ubuntu" ]]; then $PKG_INSTALL locales >/dev/null 2>&1 sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen >/dev/null 2>&1 locale-gen en_US.UTF-8 >/dev/null 2>&1 fi $PKG_INSTALL curl wget git sudo tzdata >/dev/null 2>&1 msg_ok "Universal OS Established." } os_detect