From b7405d3ff67beb0e7bf4beec793fb1beeb727375 Mon Sep 17 00:00:00 2001 From: pika Date: Sat, 24 May 2025 15:04:29 +0200 Subject: [PATCH] already pretty good? --- postinstall.sh | 142 +++++++++++++++++++++++-------------------------- 1 file changed, 68 insertions(+), 74 deletions(-) diff --git a/postinstall.sh b/postinstall.sh index 8970528..32accc3 100644 --- a/postinstall.sh +++ b/postinstall.sh @@ -7,26 +7,8 @@ command_exists() { command -v "$@" >/dev/null 2>&1 } -# if command_exists "$PACKAGE"; then -# echo_warning "$PACKAGE is already installed!" -# echo_warning "Exiting now!" -# exit 69 -# fi - -# WHY: -# This import will give you the following variables: -# _sudo="sudo -E" <- only if non root user -# distro = -# arch = bool -# fedora = bool -# opensuse = bool.... -# You can then use it for, `if $arch; then` -# Also this gives you the _install and _remove command, which installs/removes a package pased on the packagemanager/distro used. -# CAUTION: -# This only works for generic package names, like neovim, or vim, or tmux etc.. -# not every package packagemanager has the same packagenames for their packages.. -getImports() { - local url="https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh" +source-script() { + local url="$1" local import="$(mktemp)" if command_exists curl; then curl -fsSL $url -o $import @@ -43,7 +25,7 @@ getImports() { } getDependencies() { - echo_info "Checking build dependencies.." + pen bold blue "Checking build dependencies.." # INFO: # ╭─────────────────────────────────────────────────────────────────────────╮ @@ -107,62 +89,72 @@ getDependencies() { case "$distro" in debian | ubuntu | arch | fedora | alpine | opensuse) - echo_info "Installing base packages.." + pen bold blue "Installing base packages.." - checkAndInstall "${generalDeps[@]}" + check-and-install ${generalDeps[@]} - checkAndInstall "${pkgArray[@]}" + check-and-install ${pkgArray[@]} ;; *) - echo_error "There are no dependencies to install for $distro" - return 69 + echo-error "There are no dependencies to install for $distro" + return 0 ;; esac } removeBloat() { if ! $arch; then - echo_info "Removing bloat.." - _remove "${generalBloat[@]}" + spin "Removing bloat.." + for pkg in "${generalBloat[@]}"; do + if run --err err pkg-remove $pkg; then + upclear + check "Removed $pkg" + else + upclear + throw "Error while removing $pkg" + echo-error "${err:-}" + fi + done fi } _nala() { if command_exists nala; then - echo_info "Nala is already present, fetching mirros now!" - echo_warning "(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 +# arch = bool +# fedora = bool +# opensuse = bool.... +# You can then use it for, `if $arch; then` +# Also this gives you the pkg-install command, which installs a package pased on the packagemanager/distro used. +# CAUTION: +# This only wokrs for generic package names, like neovim, or vim, or tmux etc.. +# not every package packagemanager has the same packagenames for their packages.. +setup-env() { + # local beddu=https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh + # local pika=https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh + local dream=https://git.k4li.de/scripts/imports/raw/branch/main/dream.sh -if getImports; then + if ! command_exists pkg-install && ! command_exists check-and-install && ! command_exists spin; then + source-script $dream + line + fi +} + +if setup-env; then # ─< package variable >─────────────────────────────────────────────────────────────────── unset PACKAGE # ─< argument list variables >────────────────────────────────────────────────────────────