.dotfiles/.bin/.e
2024-02-15 19:27:18 +01:00

72 lines
2.1 KiB
Bash
Executable file

#!/usr/bin/env bash
declare -A mapper=(
[".e"]="$HOME/.bin/.e"
[".t"]="$HOME/.bin/.t"
["alacritty"]="$HOME/.config/alacritty/alacritty.toml"
["autoinstall.toml"]="$HOME/.config/autoinstall.toml"
["autostart.toml"]="$HOME/.config/autostart.toml"
["backup"]="$HOME/.bin/host-backup-$(cat /proc/sys/kernel/hostname)"
["bash"]="$HOME/.bashrc"
["bspwm"]="$HOME/.config/bspwm/bspwmrc"
["completions"]="$HOME/.config/completionsrc"
["env"]="$HOME/.config/environment"
["env.d"]="$HOME/.config/env.d/"
["git"]="$HOME/.config/git/config"
["git-ignore"]="$HOME/.config/git/ignore"
["home-manager"]="$HOME/.config/home-manager/home.nix"
["hyprland"]="$HOME/.config/hypr/hyprland.conf"
["nvim"]="$HOME/.config/nvim/"
["nvim.packer"]="$HOME/.config/nvim/lua/plugins.lua"
["polybar"]="$HOME/.config/polybar"
["qutebrowser"]="$HOME/.config/qutebrowser/config.py"
["qutebrowser-kiosk"]="$HOME/.config/qutebrowser/config_kiosk.py"
["rclone"]="$HOME/.config/rclone/rclone.conf"
["ssh"]="$HOME/.ssh/config"
["starship"]="$HOME/.config/starship.toml"
["sxhkd"]="$HOME/.config/sxhkd/sxhkdrc"
["vim"]="$HOME/.config/vim/vimrc"
["wakatime"]="$HOME/.config/wakatime/.wakatime.cfg##template"
["waybar"]="$HOME/.config/waybar/"
["xprofile"]="$HOME/.xprofile"
["yadm"]="$HOME/.local/share/yadm/repo.git/config"
["yadm-encrypt"]="$HOME/.config/yadm/encrypt"
["zsh"]="$HOME/.config/zsh/.zshrc"
)
declare -A hooks=(
["nvim"]="nvim +PackerSync"
["nvim.packer"]="nvim +PackerSync"
["qutebrowser"]="qutebrowser :config-source"
["qutebrowser-kiosk"]="qutebrowser-kiosk :config-source" # broken due to qutebrowser-kiosk being an alias
["waybar"]="killall -SIGUSR2 waybar"
["yadm"]="yadm alt"
)
if [ -z "$1" ]
then
echo "No argument given. Use --list (-l) to show all options."
exit 1
fi
if [ "$1" = "-l" ] || [ "$1" = "--list" ]
then
echo "${!mapper[@]}"
exit 0
fi
target="${mapper["$1"]}"
if [ -z "$target" ]
then
echo "Dotfile not found. Use --list (-l) to show all options."
exit 1
fi
$EDITOR "$target"
hook="${hooks["$1"]}"
if [ -n "$hook" ]
then
echo "Running hook: $hook"
eval "$hook"
fi