diff --git a/fish/theme-t31m/functions/cdk.fish b/fish/theme-t31m/functions/cdk.fish index 7bb7dcb..d747729 100644 --- a/fish/theme-t31m/functions/cdk.fish +++ b/fish/theme-t31m/functions/cdk.fish @@ -1,3 +1,4 @@ -function cdk -d "execute aws cdk" -w cdk - __nvm_run "cdk" $argv +# Defined in - @ line 1 +function cdk --wraps='npx aws-cdk@1.x' --description 'alias cdk=npx aws-cdk@1.x' + npx aws-cdk@1.x $argv; end diff --git a/fish/theme-t31m/functions/fish_prompt.fish b/fish/theme-t31m/functions/fish_prompt.fish index c8ad80a..e111a12 100644 --- a/fish/theme-t31m/functions/fish_prompt.fish +++ b/fish/theme-t31m/functions/fish_prompt.fish @@ -1,3 +1,113 @@ +# Colors +function orange + set_color -o ee5819 +end + +function yellow + set_color -o b58900 +end + +function red + set_color -o d30102 +end + +function cyan + set_color -o 2aa198 +end + +function white + set_color -o fdf6e3 +end + +function dim + set_color -o 4f4f4f +end + +function off + set_color -o normal +end + +# Git +function git::is_repo + test -d .git; or command git rev-parse --git-dir 2>/dev/null 2>/dev/null + # test 0 -eq 1 +end + +function git::ahead -a ahead behind diverged none + not git::is_repo; and return + + set -l commit_count (command git rev-list --count --left-right "@{upstream}...HEAD" 2>/dev/null) + + switch "$commit_count" + case "" + # no upstream + case "0"\t"0" + test -n "$none"; and echo "$none"; or echo "" + case "*"\t"0" + test -n "$behind"; and echo "$behind"; or echo "-" + case "0"\t"*" + test -n "$ahead"; and echo "$ahead"; or echo "+" + case "*" + test -n "$diverged"; and echo "$diverged"; or echo "±" + end +end + +function git::branch_name + git::is_repo; and begin + command git symbolic-ref --short HEAD 2>/dev/null; + or command git show-ref --head -s --abbrev | head -n1 2>/dev/null + end +end + +function git::is_dirty + git::is_repo; and not command git diff --no-ext-diff --quiet --exit-code +end + +function git::is_staged + git::is_repo; and begin + not command git diff --cached --no-ext-diff --quiet --exit-code + end +end + +function git::is_stashed + git::is_repo; and begin + command git rev-parse --verify --quiet refs/stash >/dev/null + end +end + +function git::is_touched + git::is_repo; and begin + test -n (echo (command git status --porcelain)) + end +end + +function git::untracked + git::is_repo; and begin + command git ls-files --other --exclude-standard + end +end + +function fish_right_prompt + + if test "$theme_complete_path" = "yes" + set cwd (prompt_pwd) + else + set cwd (basename (prompt_pwd)) + + if git::is_repo + set root_folder (command git rev-parse --show-toplevel 2>/dev/null) + set parent_root_folder (dirname $root_folder) + set cwd (echo $PWD | sed -e "s|$parent_root_folder/||") + end + end + + # Because of having a two line promt now we dont need right anymore so we dont print anything here atm + #printf (yellow)"("(off)$cwd(yellow)") "(off) + #printf (off)(date +%H(yellow):(off)%M(yellow):(off)%S)(off)"\n" + +end + + function fish_prompt set -l symbol "λ " set -l code $status @@ -12,7 +122,7 @@ function fish_prompt end if git::is_repo - set -l branch (git::branch_name ^/dev/null) + set -l branch (git::branch_name 2>/dev/null) set -l ref (git show-ref --head --abbrev | awk '{print substr($0,0,7)}' | sed -n 1p) printf '%s ' \U1F6E0 @@ -26,7 +136,7 @@ function fish_prompt printf (white)"*"(off) end - if command git symbolic-ref HEAD > /dev/null ^/dev/null + if command git symbolic-ref HEAD > /dev/null 2>/dev/null if git::is_staged printf (cyan)"$branch"(off) else @@ -37,8 +147,8 @@ function fish_prompt end for remote in (git remote) - set -l behind_count (echo (command git rev-list $branch..$remote/$branch ^/dev/null | wc -l | tr -d " ")) - set -l ahead_count (echo (command git rev-list $remote/$branch..$branch ^/dev/null | wc -l | tr -d " ")) + set -l behind_count (echo (command git rev-list $branch..$remote/$branch 2>/dev/null | wc -l | tr -d " ")) + set -l ahead_count (echo (command git rev-list $remote/$branch..$branch 2>/dev/null | wc -l | tr -d " ")) if test $ahead_count -ne 0; or test $behind_count -ne 0; and test (git remote | wc -l) -gt 1 echo -n -s " "(orange)$remote(off) diff --git a/fish/theme-t31m/functions/fish_right_prompt.fish b/fish/theme-t31m/functions/fish_right_prompt.fish index d0a9c7a..e69de29 100644 --- a/fish/theme-t31m/functions/fish_right_prompt.fish +++ b/fish/theme-t31m/functions/fish_right_prompt.fish @@ -1,107 +0,0 @@ -# Colors -function orange - set_color -o ee5819 -end - -function yellow - set_color -o b58900 -end - -function red - set_color -o d30102 -end - -function cyan - set_color -o 2aa198 -end - -function white - set_color -o fdf6e3 -end - -function dim - set_color -o 4f4f4f -end - -function off - set_color -o normal -end - -# Git -function git::is_repo - test -d .git; or command git rev-parse --git-dir >/dev/null ^/dev/null -end - -function git::ahead -a ahead behind diverged none - not git::is_repo; and return - - set -l commit_count (command git rev-list --count --left-right "@{upstream}...HEAD" ^/dev/null) - - switch "$commit_count" - case "" - # no upstream - case "0"\t"0" - test -n "$none"; and echo "$none"; or echo "" - case "*"\t"0" - test -n "$behind"; and echo "$behind"; or echo "-" - case "0"\t"*" - test -n "$ahead"; and echo "$ahead"; or echo "+" - case "*" - test -n "$diverged"; and echo "$diverged"; or echo "±" - end -end - -function git::branch_name - git::is_repo; and begin - command git symbolic-ref --short HEAD ^/dev/null; - or command git show-ref --head -s --abbrev | head -n1 ^/dev/null - end -end - -function git::is_dirty - git::is_repo; and not command git diff --no-ext-diff --quiet --exit-code -end - -function git::is_staged - git::is_repo; and begin - not command git diff --cached --no-ext-diff --quiet --exit-code - end -end - -function git::is_stashed - git::is_repo; and begin - command git rev-parse --verify --quiet refs/stash >/dev/null - end -end - -function git::is_touched - git::is_repo; and begin - test -n (echo (command git status --porcelain)) - end -end - -function git::untracked - git::is_repo; and begin - command git ls-files --other --exclude-standard - end -end - -function fish_right_prompt - - if test "$theme_complete_path" = "yes" - set cwd (prompt_pwd) - else - set cwd (basename (prompt_pwd)) - - if git::is_repo - set root_folder (command git rev-parse --show-toplevel ^/dev/null) - set parent_root_folder (dirname $root_folder) - set cwd (echo $PWD | sed -e "s|$parent_root_folder/||") - end - end - - # Because of having a two line promt now we dont need right anymore so we dont print anything here atm - #printf (yellow)"("(off)$cwd(yellow)") "(off) - #printf (off)(date +%H(yellow):(off)%M(yellow):(off)%S)(off)"\n" - -end diff --git a/fish/theme-t31m/functions/ssm_tunnel.fish b/fish/theme-t31m/functions/ssm_tunnel.fish index 90934ba..9ceced1 100644 --- a/fish/theme-t31m/functions/ssm_tunnel.fish +++ b/fish/theme-t31m/functions/ssm_tunnel.fish @@ -5,6 +5,11 @@ function ssm_tunnel --description 'access private AWS ressources via Bastion Hos return end + if [ "$env" != "ops" ] + echo "Switch to OPS ENV first" + return + end + # Get bastion host ID using it's name set INSTANCE_ID (aws ec2 describe-instances \ --filter 'Name=tag:Name,Values=ops-infrastructure-bastion'\ diff --git a/fish/theme-t31m/functions/t31m_prompt_right.fish b/fish/theme-t31m/functions/t31m_prompt_right.fish index 6cde8ba..8a1c1c4 100644 --- a/fish/theme-t31m/functions/t31m_prompt_right.fish +++ b/fish/theme-t31m/functions/t31m_prompt_right.fish @@ -7,7 +7,7 @@ function t31m_prompt_right set cwd (basename (prompt_pwd)) if git::is_repo - set root_folder (command git rev-parse --show-toplevel ^/dev/null) + set root_folder (command git rev-parse --show-toplevel 2>/dev/null) set parent_root_folder (dirname $root_folder) set cwd (echo $PWD | sed -e "s|$parent_root_folder/||") end