#!/usr/bin/env bash # ─< Check if the given command exists silently >───────────────────────────────────────── command_exists() { command -v "$@" >/dev/null 2>&1 } source-script() { local url="$1" 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" } __pre_stow__() { pen bold blue "__pre_stow__" conf="$HOME/.config" bak_dir="$HOME/.bak" dirs=( "btop" "zsh" "yazi" "tmux" "nvim" "ranger" "lf" "zellij" ) if [ ! -d "$bak_dir" ]; then pen bold blue "backup dir created at $bak_dir" && mkdir "$bak_dir" else pen bold blue "Backup dir already present, clearing now" && rm -rf "${bak_dir:?}/*" fi for _dirs in "${dirs[@]}"; do if [ -d "$conf/$_dirs" ]; then mv -f "$conf/$_dirs" "$bak_dir" fi done h_files=( ".zshrc" ".zshenv" ) h_dirs=( ".tmux" ".zsh" ".fzt" ) for _f in "${h_files[@]}"; do if [ -f "$HOME/$_f" ]; then mv -f "$HOME/$_f" "$bak_dir" && pen bold blue "Moved $_f to $bak_dir" fi done for _d in "${h_dirs[@]}"; do if [ -d "$HOME/$_d" ]; then mv -f "$HOME/$_d" "$bak_dir" && pen bold blue "Moved $_d to $bak_dir" fi done if [ -d "$HOME/.local/share/fastfetch/" ]; then mv -f "$HOME/.local/share/fastfetch" "$bak_dir" fi } askThings() { # pen bold blue "Choose a menu - [r]ofi || [t]ofi" # read -r askMenu # 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 ! command_exists pkg-install && ! command_exists check-and-install && ! command_exists spin; then source-script $dream line fi } if setup-env; then main fi