♻️ refactor(bin): repos script ported to bash language

This commit is contained in:
Sergio Laín 2024-08-22 00:57:56 +02:00
parent 168e84314b
commit d1c8a7d702
No known key found for this signature in database
GPG key ID: 8429B2EE312F8150
2 changed files with 28 additions and 29 deletions

View file

@ -1,29 +0,0 @@
function repos --description 'Open Git directories in ~/Repos with fzf in a new Kitty tab'
set gfetch "gfetch -d churn contributors --no-color-palette --no-title"
set selected_dir (find ~/Repos -mindepth 1 -maxdepth 1 -type d -exec test -e '{}/.git' ';' -print -prune | fzf --preview "$gfetch {} && eza --long --header --icons --all --color=always --group-directories-first --hyperlink {}")
if test -n "$selected_dir"
set tab_title (basename "$selected_dir")
set new_tab_cmd = ""
if type -q tmux
if set -q TMUX
set new_tab_cmd "tmux new-session -ds \"$tab_title\" -c \"$selected_dir\"; and tmux switch-client -t \"$tab_title\""
else
set new_tab_cmd "tmux new-session -s \"$tab_title\" -c \"$selected_dir\""
end
else if type -q zellij
if zellij ls | grep --quiet current
set new_tab_cmd "zellij action rename-tab \"$tab_title\"; and cd $selected_dir; and $gfetch; and l"
end
else if type -q kitty
set new_tab_cmd "kitty @ set-tab-title \"$tab_title\"; and cd $selected_dir; and $gfetch; and l"
else
set new_tab_cmd "cd $selected_dir; and $gfetch; and l"
end
eval $new_tab_cmd
commandline -f repaint
end
end

28
.local/bin/repos Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
gfetch="gfetch -d churn contributors --no-color-palette --no-title"
eza="eza --long --header --icons --all --color=always --group-directories-first --hyperlink"
selected_dir=$(find ~/repos -mindepth 1 -maxdepth 1 -type d | fzf --preview "$gfetch {} && $eza {}")
if [[ -n "$selected_dir" ]]; then
tab_title=$(basename "$selected_dir")
new_tab_cmd=""
if command -v tmux &>/dev/null; then
if command -v tmuxp &>/dev/null && [[ -f "$selected_dir/.tmuxp.yaml" ]]; then
new_tab_cmd="tmuxp load \"$selected_dir\""
elif [[ -n "$TMUX" ]]; then
new_tab_cmd="tmux new-session -ds \"$tab_title\" -c \"$selected_dir\"; tmux switch-client -t \"$tab_title\""
else
new_tab_cmd="tmux new-session -s \"$tab_title\" -c \"$selected_dir\""
fi
elif command -v kitty &>/dev/null; then
new_tab_cmd="kitty @ set-tab-title \"$tab_title\"; cd \"$selected_dir\"; $gfetch; l"
else
new_tab_cmd="cd \"$selected_dir\"; $gfetch; l"
fi
eval "$new_tab_cmd"
tput reset
fi