diff --git a/.bin/.e b/.bin/.e index 97bffc6..5b1da75 100755 --- a/.bin/.e +++ b/.bin/.e @@ -8,6 +8,7 @@ declare -A mapper=( ["autostart.toml"]="$HOME/.config/autostart.toml" ["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" @@ -22,7 +23,7 @@ declare -A mapper=( ["starship"]="$HOME/.config/starship.toml" ["sxhkd"]="$HOME/.config/sxhkd/sxhkdrc" ["vim"]="$HOME/.config/vim/vimrc" - ["wakatime"]="$HOME/.config/wakatime/.wakatime.cfg.tpl" + ["wakatime"]="$HOME/.config/wakatime/.wakatime.cfg##template" ["waybar"]="$HOME/.config/waybar/" ["xprofile"]="$HOME/.xprofile" ["yadm-encrypt"]="$HOME/.config/yadm/encrypt" @@ -32,24 +33,19 @@ declare -A mapper=( if [ -z "$1" ] then echo "No argument given. Use --list (-l) to show all options." - exit + exit 1 fi if [ "$1" = "-l" ] || [ "$1" = "--list" ] then echo "${!mapper[@]}" - exit + exit 0 fi target="${mapper["$1"]}" -if [ -n "$target" ] +if [ -z "$target" ] then - if [ -d "$target" ] - then - cd "$target" - $EDITOR . - else - $EDITOR "$target" - fi -else echo "Dotfile not found. Use --list (-l) to show all options." + exit 1 fi + +$EDITOR "$target" diff --git a/.bin/.t b/.bin/.t new file mode 100755 index 0000000..7dda0fd --- /dev/null +++ b/.bin/.t @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +declare -A mapper=( + ["nix"]="nix" +) + +declare -A edit_file=( + ["nix"]="shell.nix" +) + +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 +fi + +target="${mapper["$1"]}" +if [ -z "$target" ] +then + echo "Template not found. Use --list (-l) to show all options." + exit 1 +fi + +target="$XDG_CONFIG_HOME/templates/$target" +if [ -f "$target" ] +then + cp "$target" . + echo "Template copied." +elif [ -d "$target" ] +then + cp -r "$target/*" . + echo "Template copied." +else + echo "Error copying template." + exit 1 +fi + +if [ -n "${edit_file["$1"]}" ] +then + $EDITOR "${edit_file["$1"]}" +fi diff --git a/.config/completionsrc b/.config/completionsrc index e6a88e1..f15f542 100644 --- a/.config/completionsrc +++ b/.config/completionsrc @@ -14,6 +14,20 @@ _dote_completions() } complete -F _dote_completions ".e" +_dott_completions() +{ + if [ "${#COMP_WORDS[@]}" == "1" ]; then + return + fi + + COMPREPLY=() + while IFS='' read -r line + do + COMPREPLY+=("$line") + done < <(compgen -W "$(.t -l)" "${COMP_WORDS[1]}") +} +complete -F _dott_completions ".t" + _autostart_manage_completions() { if [ "${#COMP_WORDS[@]}" == "2" ]; then