This commit is contained in:
pika 2025-05-24 15:19:34 +02:00
parent a8b2a51c17
commit 8b93457539

View file

@ -5,27 +5,25 @@ command_exists() {
command -v "$@" >/dev/null 2>&1 command -v "$@" >/dev/null 2>&1
} }
# WHY: source-script() {
# This import will give you the following variables: local url="$1"
# _sudo="sudo -E" <- only if non root user local import="$(mktemp)"
# 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..
if command_exists curl; then if command_exists curl; then
eval "$(curl -fsSL https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh)" curl -fsSL $url -o $import
elif command_exists wget; then
wget -o $import $url
else else
echo "curl is required, but missing.." echo "curl/wget is required, but missing.."
exit 1 exit 69
fi fi
source "$import"
sleep 0.2
rm "$import"
}
__pre_stow__() { __pre_stow__() {
echo_note "__pre_stow__" pen bold blue "__pre_stow__"
conf="$HOME/.config" conf="$HOME/.config"
bak_dir="$HOME/.bak" bak_dir="$HOME/.bak"
dirs=( dirs=(
@ -40,10 +38,10 @@ __pre_stow__() {
) )
if [ ! -d "$bak_dir" ]; then if [ ! -d "$bak_dir" ]; then
echo_info "backup dir created at $bak_dir" && pen bold blue "backup dir created at $bak_dir" &&
mkdir "$bak_dir" mkdir "$bak_dir"
else else
echo_info "Backup dir already present, clearing now" && pen bold blue "Backup dir already present, clearing now" &&
rm -rf "${bak_dir:?}/*" rm -rf "${bak_dir:?}/*"
fi fi
@ -66,13 +64,13 @@ __pre_stow__() {
for _f in "${h_files[@]}"; do for _f in "${h_files[@]}"; do
if [ -f "$HOME/$_f" ]; then if [ -f "$HOME/$_f" ]; then
mv -f "$HOME/$_f" "$bak_dir" && echo_info "Moved $_f to $bak_dir" mv -f "$HOME/$_f" "$bak_dir" && pen bold blue "Moved $_f to $bak_dir"
fi fi
done done
for _d in "${h_dirs[@]}"; do for _d in "${h_dirs[@]}"; do
if [ -d "$HOME/$_d" ]; then if [ -d "$HOME/$_d" ]; then
mv -f "$HOME/$_d" "$bak_dir" && echo_info "Moved $_d to $bak_dir" mv -f "$HOME/$_d" "$bak_dir" && pen bold blue "Moved $_d to $bak_dir"
fi fi
done done
@ -82,26 +80,28 @@ __pre_stow__() {
} }
askThings() { askThings() {
# echo_info "Choose a menu - [r]ofi || [t]ofi" # pen bold blue "Choose a menu - [r]ofi || [t]ofi"
# read -r askMenu </dev/tty # read -r askMenu </dev/tty
if [ ! -d ./dotfiles/.config/yazi/ ] && [ ! -d ./dotfiles/.config/lf/ ] && [ ! -d ./dotfiles/.config/ranger/ ]; then if [ ! -d ./dotfiles/.config/yazi/ ] && [ ! -d ./dotfiles/.config/lf/ ] && [ ! -d ./dotfiles/.config/ranger/ ]; then
echo_info "Choose a cli filemanager - [y]azi || [r]anger || [l]f" choose fileMgr "Choose a cli filemanager" yazi ranger lf none </dev/tty
read -r askFilemgr </dev/tty # pen bold blue "Choose a cli filemanager - [y]azi || [r]anger || [l]f"
# read -r fileMgr </dev/tty
fi fi
[ "$fileMgr" == "none" ] && fileMgr=""
[ -n $fileMgr ] && cloneDots "$fileMgr"
if [ ! -d ./dotfiles/.config/tmux/ ] && [ ! -d ./dotfiles/.config/zellij/ ]; then if [ ! -d ./dotfiles/.config/tmux/ ] && [ ! -d ./dotfiles/.config/zellij/ ]; then
echo_info "Choose a cli multiplexer - [t]mux || [z]ellij || [n]one" choose multiPlx "Choose a cli multiplexer" tmux zellij none </dev/tty
read -r askMultiPlexer </dev/tty # pen bold blue "Choose a cli multiplexer - [t]mux || [z]ellij || [n]one"
# read -r askMultiPlexer </dev/tty
fi fi
[ "$multiPlx" == "none" ] && multiPlx=""
[ -n $multiPlx ] && cloneDots "$multiPlx"
echo_info "Do you also want to install optional packages? (y/n)" if confirm "Do you also want to install optional packages?" </dev/tty; then
read -r askOptional </dev/tty __optional__=true
fi
case "$askOptional" in
[yY]) __optional__="true" ;;
[nN]) __optional__="false" ;;
esac
} }
cloneDots() { cloneDots() {
@ -113,7 +113,7 @@ cloneDots() {
git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${choise}" git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${choise}"
else else
echo_error "Git was not found" echo-error "Git was not found"
fi fi
} }
@ -126,7 +126,7 @@ __validate__() {
if command_exists curl; then if command_exists curl; then
curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh | bash curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh | bash
else else
echo_warning "curl was not found, could not install yazi!" pen bold yellow "curl was not found, could not install yazi!"
fi fi
fi fi
fileMgr="yazi" fileMgr="yazi"
@ -152,19 +152,19 @@ __validate__() {
if command_exists curl; then if command_exists curl; then
curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh | bash curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh | bash
else else
echo_warning "curl was not found, could not install zellij!" pen bold yellow "curl was not found, could not install zellij!"
fi fi
fi fi
multiPlx="zellij" multiPlx="zellij"
;; ;;
esac esac
else else
echo_error "Something went terribly wrong" echo-error "Something went terribly wrong"
exit 1 exit 1
fi fi
# if [ ! -d "$HOME/.config/nvim" ]; then # if [ ! -d "$HOME/.config/nvim" ]; then
# echo_note "There was no nvim config found, do you want to clone the pika nvim? (y/n)" # pen bold blue "There was no nvim config found, do you want to clone the pika nvim? (y/n)"
# read -r _neovim </dev/tty # read -r _neovim </dev/tty
# case "$_neovim" in # case "$_neovim" in
# [yY]) # [yY])
@ -195,14 +195,14 @@ __dep__() {
if ! command_exists "$hyprdots_dependency"; then if ! command_exists "$hyprdots_dependency"; then
eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh)" eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh)"
else else
echo_info "$hyprdots_dependency is already installed" pen bold blue "$hyprdots_dependency is already installed"
fi fi
;; ;;
yazi) yazi)
if ! command_exists "$hyprdots_dependency"; then if ! command_exists "$hyprdots_dependency"; then
eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh)" eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh)"
else else
echo_info "$hyprdots_dependency is already installed" pen bold blue "$hyprdots_dependency is already installed"
fi fi
;; ;;
*) *)
@ -223,9 +223,9 @@ pkg_optional() {
Y | y) Y | y)
for _o_ in "${_ops[@]}"; do for _o_ in "${_ops[@]}"; do
if command_exists "$_o_"; then if command_exists "$_o_"; then
echo_note "$_o_ - is already installed" pen bold blue "$_o_ - is already installed"
else else
echo_info "Installing $_o_" pen bold blue "Installing $_o_"
_install "$_o_" _install "$_o_"
fi fi
done done
@ -242,26 +242,23 @@ __stow__() {
} }
main() { main() {
check_root
get_packager
__validate__ __validate__
__dep__ __dep__
if ! command_exists stow; then if ! command_exists stow; then
echo_error "we couldn't find stow on the machine, do you want us to install it? (y/n): " echo-error "we couldn't find stow on the machine, do you want us to install it? (y/n): "
read -r ask_stow read -r ask_stow
case "$ask_stow" in case "$ask_stow" in
Y | y) Y | y)
_install stow _install stow
;; ;;
*) *)
echo_error "You cannot proceed without installing stow! Please install manually" echo-error "You cannot proceed without installing stow! Please install manually"
exit 1 exit 1
;; ;;
esac esac
else else
echo_info "stow was found, going on to prepare to stow your config" pen bold blue "stow was found, going on to prepare to stow your config"
sleep 0.3 sleep 0.3
fi fi
@ -275,7 +272,32 @@ main() {
fi fi
# __monitors__ # __monitors__
# echo_note "found resolution ${res}" # pen bold blue "found resolution ${res}"
} }
# 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 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 main
fi