From 81701228fd6f81a4edcc2fa4a155e9f8d8eacf8c Mon Sep 17 00:00:00 2001 From: pika Date: Sun, 6 Apr 2025 20:59:44 +0200 Subject: [PATCH] wip --- setup/postinstall.sh | 660 +++++++++++++++++++++---------------------- 1 file changed, 329 insertions(+), 331 deletions(-) diff --git a/setup/postinstall.sh b/setup/postinstall.sh index d3c4cb5..61e1236 100755 --- a/setup/postinstall.sh +++ b/setup/postinstall.sh @@ -1,346 +1,344 @@ -{ - #!/bin/sh +#!/bin/sh - # ╭──────────────╮ - # │ dependencies │ - # ╰──────────────╯ - deps="7zip bc btop exa fzf gawk gdu git make pv ripgrep rsync stow tmux trash-cli unzip zoxide zsh" +# ╭──────────────╮ +# │ dependencies │ +# ╰──────────────╯ +deps="7zip bc btop exa fzf gawk gdu git make pv ripgrep rsync stow tmux trash-cli unzip zoxide zsh" - # ╭─────────────╮ - # │ ENVIRONMENT │ - # ╰─────────────╯ - # ANSI color codes - RED='\033[0;31m' - CYAN='\033[0;36m' - YELLOW='\033[0;33m' - LIGHT_GREEN='\033[0;92m' - BOLD='\033[1m' - NC='\033[0m' +# ╭─────────────╮ +# │ ENVIRONMENT │ +# ╰─────────────╯ +# ANSI color codes +RED='\033[0;31m' +CYAN='\033[0;36m' +YELLOW='\033[0;33m' +LIGHT_GREEN='\033[0;92m' +BOLD='\033[1m' +NC='\033[0m' - # Initialize storage variables - _STORED_ERRORS="" - _STORED_WARNINGS="" - _STORED_INFOS="" - _STORED_NOTES="" +# Initialize storage variables +_STORED_ERRORS="" +_STORED_WARNINGS="" +_STORED_INFOS="" +_STORED_NOTES="" - # Modified echo functions that store and display messages - echo_error() { - message="${RED}$1${NC}\n" - printf "$message" >&2 - _STORED_ERRORS="${_STORED_ERRORS}${message}" - } +# Modified echo functions that store and display messages +echo_error() { + message="${RED}$1${NC}\n" + printf "$message" >&2 + _STORED_ERRORS="${_STORED_ERRORS}${message}" +} - echo_warning() { - message="${YELLOW}$1${NC}\n" - printf "$message" - _STORED_WARNINGS="${_STORED_WARNINGS}${message}" - } +echo_warning() { + message="${YELLOW}$1${NC}\n" + printf "$message" + _STORED_WARNINGS="${_STORED_WARNINGS}${message}" +} - echo_info() { - message="${CYAN}$1${NC}\n" - printf "$message" - _STORED_INFOS="${_STORED_INFOS}${message}" - } +echo_info() { + message="${CYAN}$1${NC}\n" + printf "$message" + _STORED_INFOS="${_STORED_INFOS}${message}" +} - echo_note() { - message="${LIGHT_GREEN}$1${NC}\n" - printf "$message" - _STORED_NOTES="${_STORED_NOTES}${message}" - } +echo_note() { + message="${LIGHT_GREEN}$1${NC}\n" + printf "$message" + _STORED_NOTES="${_STORED_NOTES}${message}" +} - # ─< Check if the given command exists silently >───────────────────────────────────────── - command_exists() { - command -v "$@" >/dev/null 2>&1 - } +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} - # ─────────────────────────────────────< get packager >───────────────────────────────────── - checkPkg() { - for pkg in apt-get dnf pacman apk zypper; do - if command_exists $pkg; then - printf "Using ${RED}${pkg}${NC} method.." - pkger="$pkg" - fi - done - } - - # ─────────────────────────────────< check for root/sudo >─────────────────────────────── - checkRoot() { - if [ "$(id -u)" -ne 0 ]; then - if command_exists sudo; then - echo_info "User is not root. Using sudo for privileged operations." - _sudo="sudo -E" - else - echo_error "No sudo found and you're not root! Can't install packages." - return 1 - fi - else - echo_info "Root access confirmed." - _sudo="" +# ─────────────────────────────────────< get packager >───────────────────────────────────── +checkPkg() { + for pkg in apt-get dnf pacman apk zypper; do + if command_exists $pkg; then + printf "Using ${RED}${pkg}${NC} method.." + pkger="$pkg" fi - } + done +} - # ╭─────╮ - # │ apt │ - # ╰─────╯ - aptCommentCDinSources() { - # Path to sources.list - sources_file="/etc/apt/sources.list" - - # Check if file exists - if [ ! -f "$sources_file" ]; then - echo_error "Error: $sources_file not found" +# ─────────────────────────────────< check for root/sudo >─────────────────────────────── +checkRoot() { + if [ "$(id -u)" -ne 0 ]; then + if command_exists sudo; then + echo_info "User is not root. Using sudo for privileged operations." + _sudo="sudo -E" + else + echo_error "No sudo found and you're not root! Can't install packages." return 1 fi - - # Comment out CD-ROM entries using sudo - $_sudo sed -i 's/^[[:space:]]*deb[[:space:]]\+cdrom:/#&/' "$sources_file" - echo_info "CD-ROM entries have been commented out in $sources_file" - } - - aptBase() { - aptCommentCDinSources - echo_info "Updating sources.." - $_sudo apt-get update - - if ! command_exists sudo; then - echo_note "Installing sudo" - apt-get install sudo --assume-yes - fi - - echo_note "Installing base packages: $deps" - - for _deps in $deps; do - if ! command_exists "$_deps"; then - echo_info "Installing $_deps.." - if ! $_sudo apt-get install "$_deps" --assume-yes; then - echo_error "$_deps - failed to install!" - fi - else - echo_note "$_deps - was already installed!" - fi - done - } - - aptOptimize() { - if command_exists nala; then - echo_info "Nala is already present, fetching mirros now! (This might take a minute or two, depending on your internet speed)" - $_sudo nala fetch --auto --assume-yes --https-only - else - echo_note "Nala is not installed on the system, do you want to install it now? (Y/n): " - read -r inst_nala