already pretty good?

This commit is contained in:
pika 2025-05-24 15:04:29 +02:00
parent 2683c602ba
commit b7405d3ff6

View file

@ -7,26 +7,8 @@ command_exists() {
command -v "$@" >/dev/null 2>&1 command -v "$@" >/dev/null 2>&1
} }
# if command_exists "$PACKAGE"; then source-script() {
# echo_warning "$PACKAGE is already installed!" local url="$1"
# 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 = <distro name, like 'arch', 'debian', 'fedora'..>
# 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"
local import="$(mktemp)" local import="$(mktemp)"
if command_exists curl; then if command_exists curl; then
curl -fsSL $url -o $import curl -fsSL $url -o $import
@ -43,7 +25,7 @@ getImports() {
} }
getDependencies() { getDependencies() {
echo_info "Checking build dependencies.." pen bold blue "Checking build dependencies.."
# INFO: # INFO:
# ╭─────────────────────────────────────────────────────────────────────────╮ # ╭─────────────────────────────────────────────────────────────────────────╮
@ -107,62 +89,72 @@ getDependencies() {
case "$distro" in case "$distro" in
debian | ubuntu | arch | fedora | alpine | opensuse) 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" echo-error "There are no dependencies to install for $distro"
return 69 return 0
;; ;;
esac esac
} }
removeBloat() { removeBloat() {
if ! $arch; then if ! $arch; then
echo_info "Removing bloat.." spin "Removing bloat.."
_remove "${generalBloat[@]}" 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 fi
} }
_nala() { _nala() {
if command_exists nala; then if command_exists nala; then
echo_info "Nala is already present, fetching mirros now!" # pen bold blue "Nala is already present, fetching mirros now!"
echo_warning "(This might take a minute or two, depending on your internet speed)" # pen bold yellow "(This might take a minute or two, depending on your internet speed)"
$_sudo nala fetch --auto --assume-yes --https-only if confirm "Nala is already present. Do you want to auto fetch the best mirrors?"; then
else check green bold "Depending on your internet speed, this might take a while.."
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 $_sudo nala fetch --auto --assume-yes --https-only
;; fi
esac else
if confirm "Nala is not installed on the system, do you want to install it now?" </dev/tty; then
spin bold yellow "Installing nala.."
if run --err err $_sudo apt install nala --assume-yes; then
upclear
check bold green "Installed nala"
else
throw "Error installing nala!"
fi
pen bold blue "Fetching best mirrors"
$_sudo nala fetch --auto --assume-yes --https-only
fi
fi fi
} }
main() { main() {
if $silent; then if $silent; then
echo_warning "Executing script silently!" pen bold yellow "Executing script silently!"
fi fi
# Getting general dependencies # Getting general dependencies
if ! getDependencies; then if ! getDependencies; then
echo_error "Error when installing dependencies.." echo-error "Error when installing dependencies.."
fi fi
# removing 'bloat' # removing 'bloat'
if ! removeBloat; then if ! removeBloat; then
echo_error "Error when removing bloat.." echo-error "Error when removing bloat.."
fi fi
case "$distro" in case "$distro" in
@ -174,42 +166,44 @@ main() {
if [ -f "$sources_file" ]; then if [ -f "$sources_file" ]; then
# Comment out CD-ROM entries using sudo # Comment out CD-ROM entries using sudo
$_sudo sed -i 's/^[[:space:]]*deb[[:space:]]\+cdrom:/#&/' "$sources_file" $_sudo sed -i 's/^[[:space:]]*deb[[:space:]]\+cdrom:/#&/' "$sources_file"
echo_info "CD-ROM entries have been commented out in $sources_file" pen bold blue "CD-ROM entries have been commented out in $sources_file"
else else
if [ ! -f "/etc/apt/sources.d/sources.list" ]; then if [ ! -f "/etc/apt/sources.d/sources.list" ]; then
echo_error "Error: $sources_file not found" echo-error "Error: $sources_file not found"
fi fi
fi fi
_nala _nala
;; ;;
*)
pen bold yellow "There are no distro specific things to install for your distro: $(pen bold red $distro)"
;;
esac esac
} }
# checkAUR() { # WHY:
# if ! command_exists yay && ! command_exists paru; then # This import will give you the following variables:
# return 69 # _sudo="sudo -E" <- only if non root user
# else # distro = <distro name, like 'arch', 'debian', 'fedora'..>
# return 0 # arch = bool
# fi # fedora = bool
# } # opensuse = bool....
# # You can then use it for, `if $arch; then`
# if command_exists pacman; then # Also this gives you the pkg-install command, which installs a package pased on the packagemanager/distro used.
# if ! checkAUR; then # CAUTION:
# paruTempDir="$(mktemp -d)" # This only wokrs for generic package names, like neovim, or vim, or tmux etc..
# # if ! command_exists paru; then # not every package packagemanager has the same packagenames for their packages..
# echo "${YELLOW}Installing paru as AUR helper...${NC}" setup-env() {
# $_sudo pacman -S --needed --noconfirm base-devel git # local beddu=https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh
# cd /opt && $_sudo git clone https://aur.archlinux.org/paru-bin.git "$paruTempDir/paru" && $_sudo chown -R "$USER": "$paruTempDir/paru" # local pika=https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh
# cd "$paruTempDir/paru" && makepkg --noconfirm -si local dream=https://git.k4li.de/scripts/imports/raw/branch/main/dream.sh
# echo "${GREEN}Paru installed${NC}"
# # else
# # printf "%b\n" "${GREEN}Paru already installed${RC}"
# # fi
# fi
# fi
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 >─────────────────────────────────────────────────────────────────── # ─< package variable >───────────────────────────────────────────────────────────────────
unset PACKAGE unset PACKAGE
# ─< argument list variables >──────────────────────────────────────────────────────────── # ─< argument list variables >────────────────────────────────────────────────────────────