diff --git a/fish/.config/fish/functions/gdd.fish b/fish/.config/fish/functions/gdd.fish index 6eaec01..6e5f24b 100644 --- a/fish/.config/fish/functions/gdd.fish +++ b/fish/.config/fish/functions/gdd.fish @@ -1,4 +1,9 @@ function gdd --description "Use difftastic as a difftool" + if not test -d .git + echo "Not a git repository" + return 0 + end + if count $argv >/dev/null git difftool --tool=difftastic $argv else diff --git a/fish/.config/fish/functions/gdk.fish b/fish/.config/fish/functions/gdk.fish index ba78ca8..f8538eb 100644 --- a/fish/.config/fish/functions/gdk.fish +++ b/fish/.config/fish/functions/gdk.fish @@ -1,4 +1,9 @@ function gdk + if not test -d .git + echo "Not a git repository" + return 0 + end + if count $argv >/dev/null git difftool --tool=kitty $argv else diff --git a/fish/.config/fish/functions/gdt.fish b/fish/.config/fish/functions/gdt.fish index d4c7781..d77ca62 100644 --- a/fish/.config/fish/functions/gdt.fish +++ b/fish/.config/fish/functions/gdt.fish @@ -1,4 +1,9 @@ function gdt + if not test -d .git + echo "Not a git repository" + return 0 + end + if count $argv >/dev/null git --no-pager difftool $argv else diff --git a/fish/.config/fish/functions/git_remote_toggle.fish b/fish/.config/fish/functions/git_remote_toggle.fish index a4219da..85ba210 100644 --- a/fish/.config/fish/functions/git_remote_toggle.fish +++ b/fish/.config/fish/functions/git_remote_toggle.fish @@ -1,4 +1,9 @@ function git_remote_toggle --description 'Switch git repository between HTTPS and SSH' + if not test -d .git + echo "Not a git repository" + return 0 + end + set -l options h/help q/quiet S/ssh H/https argparse $options -- $argv; or return diff --git a/fish/.config/fish/functions/gl.fish b/fish/.config/fish/functions/gl.fish index 39ac9b4..de74031 100644 --- a/fish/.config/fish/functions/gl.fish +++ b/fish/.config/fish/functions/gl.fish @@ -1,4 +1,9 @@ function gl --description 'Git browse commits' + if not test -d .git + echo "Not a git repository" + return 0 + end + set -l log_line_to_hash "echo {} | grep -o '[a-f0-9]\{7\}' | head -1" set -l view_commit "$log_line_to_hash | xargs -I % sh -c 'git show --color=always % | bat -ldiff'" set -l view_commit_nvim "$log_line_to_hash | xargs -I % sh -c 'git show %'" diff --git a/fish/.config/fish/functions/glmd.fish b/fish/.config/fish/functions/glmd.fish index 8500c3e..a193a43 100644 --- a/fish/.config/fish/functions/glmd.fish +++ b/fish/.config/fish/functions/glmd.fish @@ -1,4 +1,9 @@ function glmd --description 'Format commits in markdown for MR descriptions and copy to clipboard' + if not test -d .git + echo "Not a git repository" + return 0 + end + set -l remote (git symbolic-ref refs/remotes/origin/HEAD | awk -F'/' '{print $4}') git log --reverse --pretty=format:"- **%s** %w(0,2,2)%+b" origin/$remote.. | wl-copy end diff --git a/fish/.config/fish/functions/gm.fish b/fish/.config/fish/functions/gm.fish index 3a6915d..b38a87c 100644 --- a/fish/.config/fish/functions/gm.fish +++ b/fish/.config/fish/functions/gm.fish @@ -1,4 +1,9 @@ function gm + if not test -d .git + echo "Not a git repository" + return 0 + end + if count $argv >/dev/null git merge $argv else diff --git a/fish/.config/fish/functions/vd.fish b/fish/.config/fish/functions/vd.fish index 674ef47..ef01eb5 100644 --- a/fish/.config/fish/functions/vd.fish +++ b/fish/.config/fish/functions/vd.fish @@ -2,5 +2,10 @@ # ACMRU = Added || Copied || Modified || Renamed || Unmerged # Edit all uncommitted files that have changes since the last commit (be they staged or unstaged) function vd --wraps='nvim (git diff HEAD --name-only --diff-filter=ACMR)' --description 'alias vd=nvim (git diff HEAD --name-only --diff-filter=ACMR)' + if not test -d .git + echo "Not a git repository" + return 0 + end + nvim (git diff HEAD --name-only --diff-filter=ACMR) $argv end diff --git a/fish/.config/fish/functions/vdc.fish b/fish/.config/fish/functions/vdc.fish index cca6330..e083109 100644 --- a/fish/.config/fish/functions/vdc.fish +++ b/fish/.config/fish/functions/vdc.fish @@ -1,3 +1,8 @@ function vdc --wraps='nvim (git diff HEAD^ --name-only --diff-filter=ACMR)' --description 'Edit all files that were altered in the last commit' + if not test -d .git + echo "Not a git repository" + return 0 + end + nvim (git diff HEAD^ --name-only --diff-filter=ACMR) $argv end diff --git a/fish/.config/fish/functions/vdm.fish b/fish/.config/fish/functions/vdm.fish index 45ff368..b1fc262 100644 --- a/fish/.config/fish/functions/vdm.fish +++ b/fish/.config/fish/functions/vdm.fish @@ -1,3 +1,8 @@ function vdm --wraps='nvim (git diff master --name-only --diff-filter=ACMR)' --description 'Edit files changed since master' + if not test -d .git + echo "Not a git repository" + return 0 + end + nvim (git diff master --name-only --diff-filter=ACMR) $argv end diff --git a/fish/.config/fish/functions/vds.fish b/fish/.config/fish/functions/vds.fish index 92d4529..8fe3259 100644 --- a/fish/.config/fish/functions/vds.fish +++ b/fish/.config/fish/functions/vds.fish @@ -1,3 +1,8 @@ function vds --wraps='nvim (git diff --staged --name-only --diff-filter=ACMR)' --description 'Edit all staged files that have changes since the last commit' + if not test -d .git + echo "Not a git repository" + return 0 + end + nvim (git diff --staged --name-only --diff-filter=ACMR) $argv end diff --git a/fish/.config/fish/functions/vdu.fish b/fish/.config/fish/functions/vdu.fish index 35071bf..52e72b2 100644 --- a/fish/.config/fish/functions/vdu.fish +++ b/fish/.config/fish/functions/vdu.fish @@ -1,3 +1,8 @@ function vdu --wraps='nvim (git diff --name-only --diff-filter=U | uniq)' --description 'Edit files unmerged' + if not test -d .git + echo "Not a git repository" + return 0 + end + nvim (git diff --name-only --diff-filter=U | uniq) $argv end diff --git a/fish/.config/fish/functions/vdua.fish b/fish/.config/fish/functions/vdua.fish index 8c97e02..6b42f8c 100644 --- a/fish/.config/fish/functions/vdua.fish +++ b/fish/.config/fish/functions/vdua.fish @@ -1,3 +1,8 @@ function vdua --wraps='git add (git diff --name-only --diff-filter=U)' --description 'Add unmerged files' + if not test -d .git + echo "Not a git repository" + return 0 + end + git add (git diff --name-only --diff-filter=U) $argv end