This commit is contained in:
pika 2025-05-23 20:13:15 +02:00
parent 73049cbde6
commit bf57d47fed
3 changed files with 237 additions and 320 deletions

View file

@ -73,6 +73,10 @@ echo_error() {
echo "${BOLD}${RED}${UNDERLINE}ERROR:${NC}${BRIGHT_RED} $1 ${NC}" >&2 echo "${BOLD}${RED}${UNDERLINE}ERROR:${NC}${BRIGHT_RED} $1 ${NC}" >&2
} }
echo-error() {
echo "${BOLD}${RED}${UNDERLINE}ERROR:${NC}${BRIGHT_RED} $1 ${NC}" >&2
}
# INFO: # INFO:
# ↓ should get set in the install script itself # ↓ should get set in the install script itself
# ↓ # ↓
@ -107,84 +111,64 @@ echo_pkg() {
} }
echo_info() { echo_info() {
echo "${BOLD}${BLUE}INFO:${NC}${BRIGHT_BLUE} $1${NC}" echo "${BOLD}${BLUE}INFO:${NC} $1${NC}"
}
echo_info() {
echo "${BOLD}${BLUE}INFO:${NC} $1${NC}"
}
echo-warning() {
echo "${BOLD}${YELLOW}WARNING:${NC} $1${NC}"
} }
echo_warning() { echo_warning() {
echo "${BOLD}${YELLOW}WARNING:${NC}${BRIGHT_YELLOW} $1${NC}" echo "${BOLD}${YELLOW}WARNING:${NC} $1${NC}"
}
echo-note() {
echo "${BOLD}${GREEN}NOTE:${NC} $1${NC}"
} }
echo_note() { echo_note() {
echo "${BOLD}${GREEN}NOTE:${NC}${BRIGHT_GREEN} $1${NC}" echo "${BOLD}${GREEN}NOTE:${NC} $1${NC}"
} }
# ─< Check if the given command exists silently >───────────────────────────────────────── # ─< Check if the given command exists silently >─────────────────────────────────────────
command_exists() { command_exists() {
command -v "$@" >/dev/null 2>&1 command -v "$@" >/dev/null 2>&1
} }
command-exists() {
command -v "$@" >/dev/null 2>&1
}
silentexec() { silentexec() {
"$@" >/dev/null 2>&1 "$@" >/dev/null 2>&1
} }
source_script() {
local url="$1"
local import="$(mktemp)"
# ─< if $1 is a local file, source this one instead >─────────────────────────────────────
if [ -f "$url" ]; then
source "$url"
sleep 0.1
return 0
else
# ─< if $1 is a url, grab it and source it, also deletes afterwards >─────────────────────
if command_exists curl; then
curl -fsSL $url -o $import
elif command_exists wget; then
wget -o $import $url
else
echo "curl/wget is required, but missing.."
exit 69
fi
source "$import"
echo "${BLUE}Sourcing external script:${NC} $url"
sleep 0.1
rm -f "$import"
fi
}
# just an alias for source_script
source-script() {
source_script "$1"
}
run-silent() { run-silent() {
[[ -z $silent ]] && if [[ -z $silent ]] || ! $silent; then
"$@" || "$@"
# else else
if $silent; then silentexec "$@"
silentexec "$@" fi
else
"$@"
fi
# fi
} }
# if given an array, it checks if the command is available, and if not - installs all packages in that array one by one # if given an array, it checks if the command is available, and if not - installs all packages in that array one by one
checkAndInstall() { checkAndInstall() {
local pkg=$1
# echo "DEBUG:: GOT ARRAY :: ${@}" # echo "DEBUG:: GOT ARRAY :: ${@}"
# ─< if it's not a list, then just check and install the package.. >────────────────────── # INFO: if it's not a list, then just check and install the package..
if [[ -z $2 ]]; then if [[ -z $2 ]]; then
if ! command_exists "$1"; then if ! command_exists "$pkg"; then
if run-silent pkg-install "$1"; then echo_pkg deps "Installing $pkg"
echo_pkg deps "$1 - ${GREEN}installed" if run-silent pkg-install "$pkg"; then
echo_pkg deps "Installed $pkg"
else else
echo_pkg deps "$1 is already installed.." echo_pkg deps "$pkg is already installed.."
fi fi
else else
echo_pkg deps "skipping $1 - as it's ${RED}already installed.." echo_pkg deps "skipping $pkg - as it's ${RED}already installed.."
fi fi
else else
# ─< else go though the list of items and do the same >─────────────────────────────────── # ─< else go though the list of items and do the same >───────────────────────────────────
@ -220,7 +204,6 @@ check_env() {
_sudo="" _sudo=""
fi fi
pikaCheckFile="$HOME/.cache/pika_script_detection"
checkFileAge() { checkFileAge() {
local file="$1" local file="$1"
[[ ! -e "$file" ]] && return 2 # File doesn't exist [[ ! -e "$file" ]] && return 2 # File doesn't exist
@ -232,6 +215,8 @@ check_env() {
fi fi
} }
pikaCheckFile="$HOME/.cache/pika_script_detection"
if [ -f "$pikaCheckFile" ]; then if [ -f "$pikaCheckFile" ]; then
if checkFileAge $pikaCheckFile; then if checkFileAge $pikaCheckFile; then
PIKA_INIT=true PIKA_INIT=true
@ -478,6 +463,7 @@ get_packager() {
dist_setup() { dist_setup() {
case "$distro" in case "$distro" in
debian) debian)
echo "${BOLD}Found ${RED}debian${NC}"
_setup debian _setup debian
# Codename support # Codename support
if [ -n $VERSION_CODENAME ]; then if [ -n $VERSION_CODENAME ]; then
@ -490,6 +476,7 @@ dist_setup() {
fi fi
;; ;;
ubuntu) ubuntu)
echo "${BOLD}Found ${BRIGHT_YELLOW}ubuntu${NC}"
_setup ubuntu _setup ubuntu
# Codename support # Codename support
if [ -n $VERSION_CODENAME ]; then if [ -n $VERSION_CODENAME ]; then
@ -502,12 +489,14 @@ dist_setup() {
fi fi
;; ;;
fedora) fedora)
echo "${BOLD}Found ${BRIGHT_BLUE}fedora${NC}"
_setup fedora _setup fedora
# Add version-specific var like: fedora_40=true # Add version-specific var like: fedora_40=true
fedora_version="fedora_${VERSION_ID//./_}" fedora_version="fedora_${VERSION_ID//./_}"
eval "$fedora_version=true" eval "$fedora_version=true"
;; ;;
arch) arch)
echo "${BOLD}Found ${BLUE}arch${NC}"
_setup arch _setup arch
if command_exists yay || command_exists paru; then if command_exists yay || command_exists paru; then
aur=true aur=true
@ -515,16 +504,20 @@ dist_setup() {
aur=false aur=false
fi fi
;; ;;
alpine | opensuse) alpine)
echo "${BOLD}Found ${BLUE}alpine${NC}"
_setup $distro
;;
opensuse)
echo "${BOLD}Found ${GREEN}opensuse${NC}"
_setup $distro _setup $distro
;; ;;
# opensuse)
# _setup opensuse
# ;;
esac esac
} }
update_package_list() { update_package_list() {
local USER="${USER:-$(whoami)}"
echo_info "Refreshing repository sources.." echo_info "Refreshing repository sources.."
case "$distro" in case "$distro" in
ubuntu | debian) run-silent $_sudo apt-get update ;; ubuntu | debian) run-silent $_sudo apt-get update ;;
@ -533,21 +526,31 @@ update_package_list() {
if command_exists pacman; then if command_exists pacman; then
if ! checkAUR; then if ! checkAUR; then
local paruBuildDir="/opt/builds" local paruBuildDir="/opt/builds"
local USER="$(whoami)"
$_sudo mkdir -p "$paruBuildDir" $_sudo mkdir -p "$paruBuildDir"
# if ! command_exists paru; then
echo "${YELLOW}Installing paru as AUR helper...${NC}" echo "${YELLOW}Installing paru as AUR helper...${NC}"
run-silent $_sudo pacman -S --needed --noconfirm base-devel git $_sudo pacman -S --needed --noconfirm base-devel git
cd "$paruBuildDir" && $_sudo git clone https://aur.archlinux.org/paru-bin.git paru
cd "$paruBuildDir" && echo "${YELLOW} Cloning paru from ${NC}https://aur.archlinux.org/paru-bin.git"
$_sudo git clone https://aur.archlinux.org/paru-bin.git paru
$_sudo chown -R "$USER": "$paruBuildDir/paru" $_sudo chown -R "$USER": "$paruBuildDir/paru"
cd "$paruBuildDir/paru" && makepkg --noconfirm -si cd "$paruBuildDir/paru"
echo "${GREEN}Paru installed${NC}"
# else echo "${GREEN}${BOLD}Installing paru"
# printf "%b\n" "${GREEN}Paru already installed${RC}" makepkg --noconfirm -si
# fi sleep 1
if command_exists paru; then
echo "${GREEN}Paru installed${NC}"
else
echo "${RED}${BOLD}Error: Something went wrong when installing paru!"
fi
fi fi
fi fi
sleep 0.01
if command_exists paru; then if command_exists paru; then
run-silent paru -Sy run-silent paru -Sy
elif command_exists yay; then elif command_exists yay; then
@ -571,17 +574,16 @@ if check_env; then
# WHY: # WHY:
# ╭─────────────────────────────────────────────────────────────────────────╮ # ╭─────────────────────────────────────────────────────────────────────────╮
# │ check if the script has run-silent at least once, so that the sources dont │ # │ check if the script has run at least once, so that the sources dont │
# │ have to get updated again.. │ # │ have to get updated again.. │
# ╰─────────────────────────────────────────────────────────────────────────╯ # ╰─────────────────────────────────────────────────────────────────────────╯
if [[ -z "$PIKA_INIT" ]]; then if [[ -z "$PIKA_INIT" ]]; then
echo_pkg "First time being imported.." echo_pkg "First time importing.."
if update_package_list; then if update_package_list; then
touch "$pikaCheckFile" silentexec touch "$pikaCheckFile"
fi fi
else else
echo_pkg "Skipping repo refresh (PIKA_INIT is already set)" echo_pkg "Skipping repo refresh"
fi fi
fi fi

View file

@ -95,6 +95,7 @@ echo_pkg() {
fi fi
} }
# alias for echo_pkg
echo-pkg() { echo-pkg() {
echo_pkg "$@" echo_pkg "$@"
} }
@ -126,7 +127,7 @@ check-and-install() {
# INFO: if it's not a list, then just check and install the package.. # INFO: if it's not a list, then just check and install the package..
if [[ -z $2 ]]; then if [[ -z $2 ]]; then
spin bold yellow "Installing $pkg" spin bold yellow "Installing $pkg"
if ! command_exists "$pkg"; then if ! command-exists "$pkg"; then
if run pkg-install "$pkg"; then if run pkg-install "$pkg"; then
check "Installed $pkg" check "Installed $pkg"
else else
@ -141,7 +142,7 @@ check-and-install() {
# ─< else go though the list of items and do the same >─────────────────────────────────── # ─< else go though the list of items and do the same >───────────────────────────────────
pen grey "Packages to install: $(pen green bold $pkgs)" pen grey "Packages to install: $(pen green bold $pkgs)"
for pkg in "$@"; do for pkg in "$@"; do
if ! command_exists $pkg; then if ! command-exists $pkg; then
spin bold "$(pen bold yellow Installing) $pkg" spin bold "$(pen bold yellow Installing) $pkg"
if run --err err pkg-install $pkg; then if run --err err pkg-install $pkg; then
check "$(pen bold green Installed) $pkg" check "$(pen bold green Installed) $pkg"
@ -159,8 +160,10 @@ check-and-install() {
# ─< Check if the user is root and set sudo variable if necessary >─────────────────────── # ─< Check if the user is root and set sudo variable if necessary >───────────────────────
check_env() { check_env() {
if [ "$(id -u)" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
if command_exists sudo; then if command-exists sudo; then
_sudo="sudo -E" _sudo="sudo -E"
pen blue "Testing your access.."
$_sudo echo "${GREEN}${BOLD}Aye, it works!${NC}"
else else
echo-error "No sudo found and you're not root! Can't install packages." echo-error "No sudo found and you're not root! Can't install packages."
return 69 return 69
@ -180,31 +183,19 @@ check_env() {
return 0 # File is within 1 week return 0 # File is within 1 week
fi fi
} }
pikaCheckFile="$HOME/.cache/pika_script_detection"
if [ -f "$pikaCheckFile" ]; then
if checkFileAge $pikaCheckFile; then
PIKA_INIT=true
else
unset PIKA_INIT
fi
else
unset PIKA_INIT
fi
} }
# CAUTION: # CAUTION:
# ╭───────────────────────────────────────────────────────────────────── # ╭──────────────────────────────────────────────────────────────────────╮
# │ This can break really quickly, since the pkg-remove() function removes │ # │ This can break really quickly, since the pkg-remove function removes │
# │ without confirmation! use with CAUTION!! # │ without confirmation! use with CAUTION!! │
# ╰───────────────────────────────────────────────────────────────────── # ╰──────────────────────────────────────────────────────────────────────╯
_setup() { _setup() {
case "$1" in case "$1" in
debian | ubuntu) debian | ubuntu)
pkg-install() { pkg-install() {
# $_sudo apt-get install --assume-yes "$@" # $_sudo apt-get install --assume-yes "$@"
if command_exists nala; then if command-exists nala; then
pkger=nala pkger=nala
$_sudo nala install --assume-yes "$@" $_sudo nala install --assume-yes "$@"
else else
@ -215,7 +206,7 @@ _setup() {
# CAUTION: # CAUTION:
pkg-remove() { pkg-remove() {
if command_exists nala; then if command-exists nala; then
pkger=nala pkger=nala
$_sudo nala remove --assume-yes "$@" $_sudo nala remove --assume-yes "$@"
$_sudo nala autoremove --assume-yes $_sudo nala autoremove --assume-yes
@ -241,7 +232,7 @@ _setup() {
;; ;;
arch) arch)
checkAUR() { checkAUR() {
if ! command_exists yay && ! command_exists paru; then if ! command-exists yay && ! command_exists paru; then
return 69 return 69
else else
return 0 return 0
@ -249,10 +240,10 @@ _setup() {
} }
pkg-install() { pkg-install() {
if command_exists paru; then if command-exists paru; then
pkger=paru pkger=paru
paru -S --color always --noconfirm --needed "$@" paru -S --color always --noconfirm --needed "$@"
elif command_exists yay; then elif command-exists yay; then
pkger=yay pkger=yay
yay -S --color always --noconfirm --needed "$@" yay -S --color always --noconfirm --needed "$@"
else else
@ -263,10 +254,10 @@ _setup() {
# CAUTION: # CAUTION:
pkg-remove() { pkg-remove() {
if command_exists paru; then if command-exists paru; then
pkger=paru pkger=paru
paru -R --color always --noconfirm "$@" paru -R --color always --noconfirm "$@"
elif command_exists yay; then elif command-exists yay; then
pkger=yay pkger=yay
yay -R --color always --noconfirm "$@" yay -R --color always --noconfirm "$@"
else else
@ -306,15 +297,13 @@ _setup() {
get_packager() { get_packager() {
# ─< define fallback function >─────────────────────────────────────────────────────────── # ─< define fallback function >───────────────────────────────────────────────────────────
fallback() { fallback() {
# ─────────────────────────────────────< get packager >─────────────────────────────────────
local pkger="" local pkger=""
for pkg in apt-get dnf pacman apk zypper; do for pkg in apt-get dnf pacman apk zypper; do
if command_exists $pkg; then if command-exists $pkg; then
printf "Using ${RED}${pkg}${NC} method.." printf "Using ${RED}${pkg}${NC} method.."
pkger="$pkg" pkger="$pkg"
# break break
return 0
fi fi
done done
@ -459,7 +448,7 @@ dist_setup() {
arch) arch)
echo "${BOLD}Found ${BLUE}arch${NC}" echo "${BOLD}Found ${BLUE}arch${NC}"
_setup arch _setup arch
if command_exists yay || command_exists paru; then if command-exists yay || command_exists paru; then
aur=true aur=true
else else
aur=false aur=false
@ -493,7 +482,7 @@ update-package-list() {
run $_sudo dnf update || repo::check run $_sudo dnf update || repo::check
;; ;;
arch) arch)
if command_exists pacman; then if command-exists pacman; then
if ! checkAUR; then if ! checkAUR; then
pen grey bold "If this is your first time after boot (or simmilarly soon) then this might take a while.." pen grey bold "If this is your first time after boot (or simmilarly soon) then this might take a while.."
spin bold grey "You don't have an AUR helper, gonna install one for ya!" spin bold grey "You don't have an AUR helper, gonna install one for ya!"
@ -519,7 +508,7 @@ update-package-list() {
echo-error "${err:-}" echo-error "${err:-}"
fi fi
if command_exists paru; then if command-exists paru; then
pen green bold "Paru is installed" pen green bold "Paru is installed"
else else
echo-error "Something went wrong when installing paru!" echo-error "Something went wrong when installing paru!"
@ -530,9 +519,9 @@ update-package-list() {
spin blue bold "Refreshing $distro repositories.." spin blue bold "Refreshing $distro repositories.."
sleep 0.01 sleep 0.01
if command_exists paru; then if command-exists paru; then
run paru -Sy || repo::check run paru -Sy || repo::check
elif command_exists yay; then elif command-exists yay; then
run yay -Sy || repo::check run yay -Sy || repo::check
else else
run $_sudo pacman -Sy || repo::check run $_sudo pacman -Sy || repo::check
@ -697,6 +686,7 @@ spin() {
pen -n cyan "${spinner:0:1} " pen -n cyan "${spinner:0:1} "
pen "${message[@]}" pen "${message[@]}"
while true; do while true; do
line
for ((i = 0; i < ${#spinner}; i++)); do for ((i = 0; i < ${#spinner}; i++)); do
frame="${spinner:$i:1}" frame="${spinner:$i:1}"
up up
@ -903,7 +893,9 @@ if check_env; then
# │ check if the script has run at least once, so that the sources dont │ # │ check if the script has run at least once, so that the sources dont │
# │ have to get updated again.. │ # │ have to get updated again.. │
# ╰─────────────────────────────────────────────────────────────────────────╯ # ╰─────────────────────────────────────────────────────────────────────────╯
if [[ -z "$PIKA_INIT" ]]; then pikaCheckFile="$HOME/.cache/pika_script_detection"
if [ ! -f "$pikaCheckFile" ]; then
pen bold grey "First time importing.." pen bold grey "First time importing.."
if update-package-list; then if update-package-list; then

351
test.sh
View file

@ -1,221 +1,144 @@
#!/usr/bin/env bash {
#!/usr/bin/env bash
PACKAGE=postinstallation # ─< Check if the given command exists silently >─────────────────────────────────────────
command_exists() {
command -v "$@" >/dev/null 2>&1
}
# ─< Check if the given command exists silently >───────────────────────────────────────── # run() {
command_exists() { # if $silent; then
command -v "$@" >/dev/null 2>&1 # # silentexec "$@" &
} # spin "Installing packages" &
# silentexec "$@"
# else
# "$@"
# fi
# }
# if command_exists "$PACKAGE"; then # WHY:
# echo_warning "$PACKAGE is already installed!" # This import will give you the following variables:
# echo_warning "Exiting now!" # _sudo="sudo -E" <- only if non root user
# exit 69 # distro = <distro name, like 'arch', 'debian', 'fedora'..>
# fi # arch = bool
# fedora = bool
# WHY: # opensuse = bool....
# This import will give you the following variables: # You can then use it for, `if $arch; then`
# _sudo="sudo -E" <- only if non root user # Also this gives you the _install command, which installs a package pased on the packagemanager/distro used.
# distro = <distro name, like 'arch', 'debian', 'fedora'..> # CAUTION:
# arch = bool # This only wokrs for generic package names, like neovim, or vim, or tmux etc..
# fedora = bool # not every package packagemanager has the same packagenames for their packages..
# opensuse = bool.... getImports() {
# You can then use it for, `if $arch; then` local url="$1"
# Also this gives you the _install and _remove command, which installs/removes a package pased on the packagemanager/distro used. local import="$(mktemp)"
# CAUTION: if command_exists curl; then
# This only works for generic package names, like neovim, or vim, or tmux etc.. curl -fsSL $url -o $import
# not every package packagemanager has the same packagenames for their packages.. elif command_exists wget; then
getImports() { wget -o $import $url
local url="https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh"
local import="$(mktemp)"
if command_exists curl; then
curl -fsSL $url -o $import
elif command_exists wget; then
wget -o $import $url
else
echo "curl/wget is required, but missing.."
exit 69
fi
source "$import"
sleep 0.2
rm "$import"
}
getDependencies() {
echo_info "Checking build dependencies.."
# INFO:
# ╭─────────────────────────────────────────────────────────────────────────╮
# │ You can define dependencies for various linux distros here. It will │
# │ automagically be pulled via the $pkgArray[$distro] variable │
# ╰─────────────────────────────────────────────────────────────────────────╯
generalDeps=(
"awk"
"7zip"
"bc"
"btop"
"curl"
"fzf"
"gawk"
"git"
"keychain"
"make"
"pv"
"ripgrep"
"rsync"
"stow"
"sudo"
"unzip"
"vi"
"zsh"
"zoxide"
)
generalBloat=(
"nano"
)
depsDebian=(
"eza"
)
depsFedora=()
depsOpensuse=()
depsArch=(
"tldr"
"oh-my-posh"
"eza"
"ytui-bin"
)
depsAlpine=()
declare -A deps=(
[debian]="depsDebian"
[ubuntu]="depsUbuntu"
[fedora]="depsFedora"
[arch]="depsArch"
[alpine]="depsAlpine"
[opensuse]="depsOpensuse"
)
# INFO:
# ╭────────────────────────────────────────────────────────────────╮
# │ This variable stores the packages you provided for each distro │
# ╰────────────────────────────────────────────────────────────────╯
declare -n pkgArray="${deps[$distro]}"
case "$distro" in
debian | ubuntu | arch | fedora | alpine | opensuse)
echo_info "Installing base packages.."
checkAndInstall "${generalDeps[@]}"
checkAndInstall "${pkgArray[@]}"
;;
*)
echo_error "There are no dependencies to install for $distro"
return 69
;;
esac
}
removeBloat() {
if ! $arch; then
echo_info "Removing bloat.."
_remove "${generalBloat[@]}"
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 </dev/tty
case "$inst_nala" in
N | n)
echo_warning "All right, continue without nala!"
;;
*)
echo_note "Installing nala.."
$_sudo apt install nala --assume-yes &&
echo_info "Fetching best mirrors"
$_sudo nala fetch --auto --assume-yes --https-only
;;
esac
fi
}
main() {
if $silent; then
echo_warning "Executing script silently!"
fi
# Getting general dependencies
if ! getDependencies; then
echo_error "Error when installing dependencies.."
fi
# removing 'bloat'
if ! removeBloat; then
echo_error "Error when removing bloat.."
fi
case "$distro" in
debian)
# Path to sources.list
sources_file="/etc/apt/sources.list"
# Check if file exists
if [ -f "$sources_file" ]; then
# 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"
else else
if [ ! -f "/etc/apt/sources.d/sources.list" ]; then echo "curl/wget is required, but missing.."
echo_error "Error: $sources_file not found" exit 69
fi
fi fi
_nala . "$import"
;; sleep 0.1
esac
rm -f "$import"
}
ask-stuff() {
choose multiplexer "Select a multiplexer" tmux zellij </dev/tty
choose menu "Select a menu package" rofi wofi tofi </dev/tty
choose shell "Select a shell" zsh bash fish nushell </dev/tty
}
install-stuff() {
arr=(
firefox-bin
blender-bin
$package
)
# case "$distro" in
# arch)
# $_sudo pacman -Syu
# ;;
# esac
check-and-install ${arr[@]}
if confirm "Do you want to remove the previous installed packages?"; then
for pkg in "${arr[@]}"; do
pkg-remove $pkg
done
fi
}
func1() {
spin yellow "installing stuff"
# if run install-stuff; then
if run --err err --out out git clone --depth=1 https://github.com/neovim/neovim.git; then
check "Installation complete"
line
pen "${out:-}"
else
throw "Installation failed!"
pen "${err:-}"
fi
}
func2() {
# run --err install-stuff
if [ -d ./neovim ]; then
if confirm "$(pen bold blue 'Do you want to remove the cloned ./neovim directory?')" </dev/tty; then
rm -rf ./neovim/
else
pen red bold "Did not remove the neovim directory!"
fi
fi
}
func3() {
local err
arr=(
firefox-esr
)
if $arch; then
spin blue "Installing.."
if run --err err checkAndInstall "${arr[@]}"; then
check "Installed $(pen red ${arr[*]})"
else
throw "Something went wrong installing ${arr[*]}.."
throw "${err:-}"
fi
fi
}
main() {
# if $silent; then
# echo_warning "Executing script silently!"
# fi
# func1
# func2
# func3
# if ask-stuff; then
choose package "What packages should also get installed? space separated list.."
if confirm "Do you want to 'install-stuff'?"; then
install-stuff
fi
# fi
# while install-stuff && break; do
# spin "Installing packages.."
# done
}
dream="https://git.k4li.de/scripts/imports/raw/branch/main/dream.sh"
if getImports "$dream"; then
main
fi
# fi
} }
# checkAUR() {
# if ! command_exists yay && ! command_exists paru; then
# return 69
# else
# return 0
# fi
# }
#
# if command_exists pacman; then
# if ! checkAUR; then
# paruTempDir="$(mktemp -d)"
# # if ! command_exists paru; then
# echo "${YELLOW}Installing paru as AUR helper...${NC}"
# $_sudo pacman -S --needed --noconfirm base-devel git
# cd /opt && $_sudo git clone https://aur.archlinux.org/paru-bin.git "$paruTempDir/paru" && $_sudo chown -R "$USER": "$paruTempDir/paru"
# cd "$paruTempDir/paru" && makepkg --noconfirm -si
# echo "${GREEN}Paru installed${NC}"
# # else
# # printf "%b\n" "${GREEN}Paru already installed${RC}"
# # fi
# fi
# fi
if getImports; then
# ─< package variable >───────────────────────────────────────────────────────────────────
unset PACKAGE
# ─< argument list variables >────────────────────────────────────────────────────────────
silent=false
PACKAGE=postinstallation
main
fi