dream.sh
This commit is contained in:
parent
73049cbde6
commit
bf57d47fed
3 changed files with 237 additions and 320 deletions
136
distros.sh
136
distros.sh
|
@ -73,6 +73,10 @@ echo_error() {
|
|||
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:
|
||||
# ↓ should get set in the install script itself
|
||||
# ↓
|
||||
|
@ -107,84 +111,64 @@ echo_pkg() {
|
|||
}
|
||||
|
||||
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 "${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 "${BOLD}${GREEN}NOTE:${NC}${BRIGHT_GREEN} $1${NC}"
|
||||
echo "${BOLD}${GREEN}NOTE:${NC} $1${NC}"
|
||||
}
|
||||
|
||||
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||
command_exists() {
|
||||
command -v "$@" >/dev/null 2>&1
|
||||
}
|
||||
command-exists() {
|
||||
command -v "$@" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
silentexec() {
|
||||
"$@" >/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() {
|
||||
[[ -z $silent ]] &&
|
||||
"$@" ||
|
||||
# else
|
||||
if $silent; then
|
||||
silentexec "$@"
|
||||
else
|
||||
if [[ -z $silent ]] || ! $silent; then
|
||||
"$@"
|
||||
else
|
||||
silentexec "$@"
|
||||
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
|
||||
checkAndInstall() {
|
||||
local pkg=$1
|
||||
# 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 ! command_exists "$1"; then
|
||||
if run-silent pkg-install "$1"; then
|
||||
echo_pkg deps "$1 - ${GREEN}installed"
|
||||
if ! command_exists "$pkg"; then
|
||||
echo_pkg deps "Installing $pkg"
|
||||
if run-silent pkg-install "$pkg"; then
|
||||
echo_pkg deps "Installed $pkg"
|
||||
else
|
||||
echo_pkg deps "$1 is already installed.."
|
||||
echo_pkg deps "$pkg is already installed.."
|
||||
fi
|
||||
else
|
||||
echo_pkg deps "skipping $1 - as it's ${RED}already installed.."
|
||||
echo_pkg deps "skipping $pkg - as it's ${RED}already installed.."
|
||||
fi
|
||||
else
|
||||
# ─< else go though the list of items and do the same >───────────────────────────────────
|
||||
|
@ -220,7 +204,6 @@ check_env() {
|
|||
_sudo=""
|
||||
fi
|
||||
|
||||
pikaCheckFile="$HOME/.cache/pika_script_detection"
|
||||
checkFileAge() {
|
||||
local file="$1"
|
||||
[[ ! -e "$file" ]] && return 2 # File doesn't exist
|
||||
|
@ -232,6 +215,8 @@ check_env() {
|
|||
fi
|
||||
}
|
||||
|
||||
pikaCheckFile="$HOME/.cache/pika_script_detection"
|
||||
|
||||
if [ -f "$pikaCheckFile" ]; then
|
||||
if checkFileAge $pikaCheckFile; then
|
||||
PIKA_INIT=true
|
||||
|
@ -478,6 +463,7 @@ get_packager() {
|
|||
dist_setup() {
|
||||
case "$distro" in
|
||||
debian)
|
||||
echo "${BOLD}Found ${RED}debian${NC}"
|
||||
_setup debian
|
||||
# Codename support
|
||||
if [ -n $VERSION_CODENAME ]; then
|
||||
|
@ -490,6 +476,7 @@ dist_setup() {
|
|||
fi
|
||||
;;
|
||||
ubuntu)
|
||||
echo "${BOLD}Found ${BRIGHT_YELLOW}ubuntu${NC}"
|
||||
_setup ubuntu
|
||||
# Codename support
|
||||
if [ -n $VERSION_CODENAME ]; then
|
||||
|
@ -502,12 +489,14 @@ dist_setup() {
|
|||
fi
|
||||
;;
|
||||
fedora)
|
||||
echo "${BOLD}Found ${BRIGHT_BLUE}fedora${NC}"
|
||||
_setup fedora
|
||||
# Add version-specific var like: fedora_40=true
|
||||
fedora_version="fedora_${VERSION_ID//./_}"
|
||||
eval "$fedora_version=true"
|
||||
;;
|
||||
arch)
|
||||
echo "${BOLD}Found ${BLUE}arch${NC}"
|
||||
_setup arch
|
||||
if command_exists yay || command_exists paru; then
|
||||
aur=true
|
||||
|
@ -515,16 +504,20 @@ dist_setup() {
|
|||
aur=false
|
||||
fi
|
||||
;;
|
||||
alpine | opensuse)
|
||||
alpine)
|
||||
echo "${BOLD}Found ${BLUE}alpine${NC}"
|
||||
_setup $distro
|
||||
;;
|
||||
opensuse)
|
||||
echo "${BOLD}Found ${GREEN}opensuse${NC}"
|
||||
_setup $distro
|
||||
;;
|
||||
# opensuse)
|
||||
# _setup opensuse
|
||||
# ;;
|
||||
esac
|
||||
}
|
||||
|
||||
update_package_list() {
|
||||
local USER="${USER:-$(whoami)}"
|
||||
|
||||
echo_info "Refreshing repository sources.."
|
||||
case "$distro" in
|
||||
ubuntu | debian) run-silent $_sudo apt-get update ;;
|
||||
|
@ -533,20 +526,30 @@ update_package_list() {
|
|||
if command_exists pacman; then
|
||||
if ! checkAUR; then
|
||||
local paruBuildDir="/opt/builds"
|
||||
local USER="$(whoami)"
|
||||
$_sudo mkdir -p "$paruBuildDir"
|
||||
# if ! command_exists paru; then
|
||||
|
||||
echo "${YELLOW}Installing paru as AUR helper...${NC}"
|
||||
run-silent $_sudo pacman -S --needed --noconfirm base-devel git
|
||||
cd "$paruBuildDir" && $_sudo git clone https://aur.archlinux.org/paru-bin.git paru
|
||||
$_sudo pacman -S --needed --noconfirm base-devel git
|
||||
|
||||
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"
|
||||
cd "$paruBuildDir/paru" && makepkg --noconfirm -si
|
||||
cd "$paruBuildDir/paru"
|
||||
|
||||
echo "${GREEN}${BOLD}Installing paru"
|
||||
makepkg --noconfirm -si
|
||||
sleep 1
|
||||
|
||||
if command_exists paru; then
|
||||
echo "${GREEN}Paru installed${NC}"
|
||||
# else
|
||||
# printf "%b\n" "${GREEN}Paru already installed${RC}"
|
||||
# fi
|
||||
else
|
||||
echo "${RED}${BOLD}Error: Something went wrong when installing paru!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 0.01
|
||||
|
||||
if command_exists paru; then
|
||||
run-silent paru -Sy
|
||||
|
@ -571,17 +574,16 @@ if check_env; then
|
|||
|
||||
# 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.. │
|
||||
# ╰─────────────────────────────────────────────────────────────────────────╯
|
||||
if [[ -z "$PIKA_INIT" ]]; then
|
||||
echo_pkg "First time being imported.."
|
||||
echo_pkg "First time importing.."
|
||||
|
||||
if update_package_list; then
|
||||
touch "$pikaCheckFile"
|
||||
silentexec touch "$pikaCheckFile"
|
||||
fi
|
||||
else
|
||||
echo_pkg "Skipping repo refresh (PIKA_INIT is already set)"
|
||||
echo_pkg "Skipping repo refresh"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
|
62
dream.sh
62
dream.sh
|
@ -95,6 +95,7 @@ echo_pkg() {
|
|||
fi
|
||||
}
|
||||
|
||||
# alias for 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..
|
||||
if [[ -z $2 ]]; then
|
||||
spin bold yellow "Installing $pkg"
|
||||
if ! command_exists "$pkg"; then
|
||||
if ! command-exists "$pkg"; then
|
||||
if run pkg-install "$pkg"; then
|
||||
check "Installed $pkg"
|
||||
else
|
||||
|
@ -141,7 +142,7 @@ check-and-install() {
|
|||
# ─< else go though the list of items and do the same >───────────────────────────────────
|
||||
pen grey "Packages to install: $(pen green bold $pkgs)"
|
||||
for pkg in "$@"; do
|
||||
if ! command_exists $pkg; then
|
||||
if ! command-exists $pkg; then
|
||||
spin bold "$(pen bold yellow Installing) $pkg"
|
||||
if run --err err pkg-install $pkg; then
|
||||
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_env() {
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
if command_exists sudo; then
|
||||
if command-exists sudo; then
|
||||
_sudo="sudo -E"
|
||||
pen blue "Testing your access.."
|
||||
$_sudo echo "${GREEN}${BOLD}Aye, it works!${NC}"
|
||||
else
|
||||
echo-error "No sudo found and you're not root! Can't install packages."
|
||||
return 69
|
||||
|
@ -180,31 +183,19 @@ check_env() {
|
|||
return 0 # File is within 1 week
|
||||
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:
|
||||
# ╭─────────────────────────────────────────────────────────────────────╮
|
||||
# │ 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!! │
|
||||
# ╰─────────────────────────────────────────────────────────────────────╯
|
||||
# ╰──────────────────────────────────────────────────────────────────────╯
|
||||
_setup() {
|
||||
case "$1" in
|
||||
debian | ubuntu)
|
||||
pkg-install() {
|
||||
# $_sudo apt-get install --assume-yes "$@"
|
||||
if command_exists nala; then
|
||||
if command-exists nala; then
|
||||
pkger=nala
|
||||
$_sudo nala install --assume-yes "$@"
|
||||
else
|
||||
|
@ -215,7 +206,7 @@ _setup() {
|
|||
|
||||
# CAUTION:
|
||||
pkg-remove() {
|
||||
if command_exists nala; then
|
||||
if command-exists nala; then
|
||||
pkger=nala
|
||||
$_sudo nala remove --assume-yes "$@"
|
||||
$_sudo nala autoremove --assume-yes
|
||||
|
@ -241,7 +232,7 @@ _setup() {
|
|||
;;
|
||||
arch)
|
||||
checkAUR() {
|
||||
if ! command_exists yay && ! command_exists paru; then
|
||||
if ! command-exists yay && ! command_exists paru; then
|
||||
return 69
|
||||
else
|
||||
return 0
|
||||
|
@ -249,10 +240,10 @@ _setup() {
|
|||
}
|
||||
|
||||
pkg-install() {
|
||||
if command_exists paru; then
|
||||
if command-exists paru; then
|
||||
pkger=paru
|
||||
paru -S --color always --noconfirm --needed "$@"
|
||||
elif command_exists yay; then
|
||||
elif command-exists yay; then
|
||||
pkger=yay
|
||||
yay -S --color always --noconfirm --needed "$@"
|
||||
else
|
||||
|
@ -263,10 +254,10 @@ _setup() {
|
|||
|
||||
# CAUTION:
|
||||
pkg-remove() {
|
||||
if command_exists paru; then
|
||||
if command-exists paru; then
|
||||
pkger=paru
|
||||
paru -R --color always --noconfirm "$@"
|
||||
elif command_exists yay; then
|
||||
elif command-exists yay; then
|
||||
pkger=yay
|
||||
yay -R --color always --noconfirm "$@"
|
||||
else
|
||||
|
@ -306,15 +297,13 @@ _setup() {
|
|||
get_packager() {
|
||||
# ─< define fallback function >───────────────────────────────────────────────────────────
|
||||
fallback() {
|
||||
# ─────────────────────────────────────< get packager >─────────────────────────────────────
|
||||
local pkger=""
|
||||
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.."
|
||||
pkger="$pkg"
|
||||
|
||||
# break
|
||||
return 0
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -459,7 +448,7 @@ dist_setup() {
|
|||
arch)
|
||||
echo "${BOLD}Found ${BLUE}arch${NC}"
|
||||
_setup arch
|
||||
if command_exists yay || command_exists paru; then
|
||||
if command-exists yay || command_exists paru; then
|
||||
aur=true
|
||||
else
|
||||
aur=false
|
||||
|
@ -493,7 +482,7 @@ update-package-list() {
|
|||
run $_sudo dnf update || repo::check
|
||||
;;
|
||||
arch)
|
||||
if command_exists pacman; then
|
||||
if command-exists pacman; then
|
||||
if ! checkAUR; then
|
||||
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!"
|
||||
|
@ -519,7 +508,7 @@ update-package-list() {
|
|||
echo-error "${err:-}"
|
||||
fi
|
||||
|
||||
if command_exists paru; then
|
||||
if command-exists paru; then
|
||||
pen green bold "Paru is installed"
|
||||
else
|
||||
echo-error "Something went wrong when installing paru!"
|
||||
|
@ -530,9 +519,9 @@ update-package-list() {
|
|||
spin blue bold "Refreshing $distro repositories.."
|
||||
sleep 0.01
|
||||
|
||||
if command_exists paru; then
|
||||
if command-exists paru; then
|
||||
run paru -Sy || repo::check
|
||||
elif command_exists yay; then
|
||||
elif command-exists yay; then
|
||||
run yay -Sy || repo::check
|
||||
else
|
||||
run $_sudo pacman -Sy || repo::check
|
||||
|
@ -697,6 +686,7 @@ spin() {
|
|||
pen -n cyan "${spinner:0:1} "
|
||||
pen "${message[@]}"
|
||||
while true; do
|
||||
line
|
||||
for ((i = 0; i < ${#spinner}; i++)); do
|
||||
frame="${spinner:$i:1}"
|
||||
up
|
||||
|
@ -903,7 +893,9 @@ if check_env; then
|
|||
# │ check if the script has run at least once, so that the sources dont │
|
||||
# │ 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.."
|
||||
|
||||
if update-package-list; then
|
||||
|
|
297
test.sh
297
test.sh
|
@ -1,32 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
{
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PACKAGE=postinstallation
|
||||
|
||||
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||
command_exists() {
|
||||
# ─< Check if the given command exists silently >─────────────────────────────────────────
|
||||
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
|
||||
# run() {
|
||||
# if $silent; then
|
||||
# # silentexec "$@" &
|
||||
# spin "Installing packages" &
|
||||
# silentexec "$@"
|
||||
# else
|
||||
# "$@"
|
||||
# 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"
|
||||
# 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 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..
|
||||
getImports() {
|
||||
local url="$1"
|
||||
local import="$(mktemp)"
|
||||
if command_exists curl; then
|
||||
curl -fsSL $url -o $import
|
||||
|
@ -37,185 +40,105 @@ getImports() {
|
|||
exit 69
|
||||
fi
|
||||
|
||||
source "$import"
|
||||
sleep 0.2
|
||||
rm "$import"
|
||||
}
|
||||
. "$import"
|
||||
sleep 0.1
|
||||
|
||||
getDependencies() {
|
||||
echo_info "Checking build dependencies.."
|
||||
rm -f "$import"
|
||||
}
|
||||
|
||||
# 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"
|
||||
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
|
||||
)
|
||||
|
||||
generalBloat=(
|
||||
"nano"
|
||||
)
|
||||
# case "$distro" in
|
||||
# arch)
|
||||
# $_sudo pacman -Syu
|
||||
# ;;
|
||||
# esac
|
||||
|
||||
depsDebian=(
|
||||
"eza"
|
||||
)
|
||||
check-and-install ${arr[@]}
|
||||
|
||||
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[@]}"
|
||||
if confirm "Do you want to remove the previous installed packages?"; then
|
||||
for pkg in "${arr[@]}"; do
|
||||
pkg-remove $pkg
|
||||
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
|
||||
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
|
||||
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
|
||||
throw "Installation failed!"
|
||||
pen "${err:-}"
|
||||
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"
|
||||
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
|
||||
if [ ! -f "/etc/apt/sources.d/sources.list" ]; then
|
||||
echo_error "Error: $sources_file not found"
|
||||
pen red bold "Did not remove the neovim directory!"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_nala
|
||||
;;
|
||||
esac
|
||||
}
|
||||
func3() {
|
||||
local err
|
||||
arr=(
|
||||
firefox-esr
|
||||
)
|
||||
|
||||
# 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 $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
|
||||
}
|
||||
|
||||
if getImports; then
|
||||
# ─< package variable >───────────────────────────────────────────────────────────────────
|
||||
unset PACKAGE
|
||||
# ─< argument list variables >────────────────────────────────────────────────────────────
|
||||
silent=false
|
||||
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
|
||||
|
||||
PACKAGE=postinstallation
|
||||
# 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
|
||||
# fi
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue