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
}
# 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..
source-script() {
local url="$1"
local import="$(mktemp)"
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
echo "curl is required, but missing.."
exit 1
echo "curl/wget is required, but missing.."
exit 69
fi
source "$import"
sleep 0.2
rm "$import"
}
__pre_stow__() {
echo_note "__pre_stow__"
pen bold blue "__pre_stow__"
conf="$HOME/.config"
bak_dir="$HOME/.bak"
dirs=(
@ -40,10 +38,10 @@ __pre_stow__() {
)
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"
else
echo_info "Backup dir already present, clearing now" &&
pen bold blue "Backup dir already present, clearing now" &&
rm -rf "${bak_dir:?}/*"
fi
@ -66,13 +64,13 @@ __pre_stow__() {
for _f in "${h_files[@]}"; do
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
done
for _d in "${h_dirs[@]}"; do
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
done
@ -82,26 +80,28 @@ __pre_stow__() {
}
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
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"
read -r askFilemgr </dev/tty
choose fileMgr "Choose a cli filemanager" yazi ranger lf none </dev/tty
# pen bold blue "Choose a cli filemanager - [y]azi || [r]anger || [l]f"
# read -r fileMgr </dev/tty
fi
[ "$fileMgr" == "none" ] && fileMgr=""
[ -n $fileMgr ] && cloneDots "$fileMgr"
if [ ! -d ./dotfiles/.config/tmux/ ] && [ ! -d ./dotfiles/.config/zellij/ ]; then
echo_info "Choose a cli multiplexer - [t]mux || [z]ellij || [n]one"
read -r askMultiPlexer </dev/tty
choose multiPlx "Choose a cli multiplexer" tmux zellij none </dev/tty
# pen bold blue "Choose a cli multiplexer - [t]mux || [z]ellij || [n]one"
# read -r askMultiPlexer </dev/tty
fi
[ "$multiPlx" == "none" ] && multiPlx=""
[ -n $multiPlx ] && cloneDots "$multiPlx"
echo_info "Do you also want to install optional packages? (y/n)"
read -r askOptional </dev/tty
case "$askOptional" in
[yY]) __optional__="true" ;;
[nN]) __optional__="false" ;;
esac
if confirm "Do you also want to install optional packages?" </dev/tty; then
__optional__=true
fi
}
cloneDots() {
@ -113,7 +113,7 @@ cloneDots() {
git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${choise}"
else
echo_error "Git was not found"
echo-error "Git was not found"
fi
}
@ -126,7 +126,7 @@ __validate__() {
if command_exists curl; then
curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh | bash
else
echo_warning "curl was not found, could not install yazi!"
pen bold yellow "curl was not found, could not install yazi!"
fi
fi
fileMgr="yazi"
@ -152,19 +152,19 @@ __validate__() {
if command_exists curl; then
curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh | bash
else
echo_warning "curl was not found, could not install zellij!"
pen bold yellow "curl was not found, could not install zellij!"
fi
fi
multiPlx="zellij"
;;
esac
else
echo_error "Something went terribly wrong"
echo-error "Something went terribly wrong"
exit 1
fi
# 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
# case "$_neovim" in
# [yY])
@ -195,14 +195,14 @@ __dep__() {
if ! command_exists "$hyprdots_dependency"; then
eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/zellij.sh)"
else
echo_info "$hyprdots_dependency is already installed"
pen bold blue "$hyprdots_dependency is already installed"
fi
;;
yazi)
if ! command_exists "$hyprdots_dependency"; then
eval "$(curl -fsSL https://git.k4li.de/scripts/installs/raw/branch/main/yazi.sh)"
else
echo_info "$hyprdots_dependency is already installed"
pen bold blue "$hyprdots_dependency is already installed"
fi
;;
*)
@ -223,9 +223,9 @@ pkg_optional() {
Y | y)
for _o_ in "${_ops[@]}"; do
if command_exists "$_o_"; then
echo_note "$_o_ - is already installed"
pen bold blue "$_o_ - is already installed"
else
echo_info "Installing $_o_"
pen bold blue "Installing $_o_"
_install "$_o_"
fi
done
@ -242,26 +242,23 @@ __stow__() {
}
main() {
check_root
get_packager
__validate__
__dep__
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
case "$ask_stow" in
Y | y)
_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
;;
esac
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
fi
@ -275,7 +272,32 @@ main() {
fi
# __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
fi