From e4939853d69945ada3082f9774e9ad40d798a402 Mon Sep 17 00:00:00 2001 From: T31M Date: Thu, 17 Feb 2022 10:07:30 +0100 Subject: [PATCH 1/3] bugfix: make fish 3.3. compatible --- fish/theme-t31m/functions/cdk.fish | 5 +- fish/theme-t31m/functions/fish_prompt.fish | 118 +++++++++++++++++- .../functions/fish_right_prompt.fish | 107 ---------------- fish/theme-t31m/functions/ssm_tunnel.fish | 5 + .../functions/t31m_prompt_right.fish | 2 +- 5 files changed, 123 insertions(+), 114 deletions(-) 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 From 8720d0e19beb59b95b069b9c1da37775746a5742 Mon Sep 17 00:00:00 2001 From: T31M Date: Fri, 18 Feb 2022 14:12:52 +0100 Subject: [PATCH 2/3] chore: fix nested git repos --- fish/theme-t31m/functions/fish_prompt.fish | 24 +++++++++---------- .../functions/t31m_prompt_right.fish | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/fish/theme-t31m/functions/fish_prompt.fish b/fish/theme-t31m/functions/fish_prompt.fish index e111a12..d870271 100644 --- a/fish/theme-t31m/functions/fish_prompt.fish +++ b/fish/theme-t31m/functions/fish_prompt.fish @@ -29,8 +29,7 @@ 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 + test -d .git; or command git rev-parse --git-dir >/dev/null 2>/dev/null end function git::ahead -a ahead behind diverged none @@ -89,22 +88,21 @@ end function fish_right_prompt - if test "$theme_complete_path" = "yes" - set cwd (prompt_pwd) - else - set cwd (basename (prompt_pwd)) + # 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 + # 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 diff --git a/fish/theme-t31m/functions/t31m_prompt_right.fish b/fish/theme-t31m/functions/t31m_prompt_right.fish index 8a1c1c4..eaaef40 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 2>/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 From 36ec3bb48583a3cce2092f3c3c96f688f58dde17 Mon Sep 17 00:00:00 2001 From: T31M Date: Sat, 30 Apr 2022 11:31:57 +0200 Subject: [PATCH 3/3] (bugfix) make compatible with fish version >=3.3 - cleanup - minor comments and fixes --- fish/theme-t31m/functions/envAWS.fish | 2 ++ fish/theme-t31m/functions/fish_prompt.fish | 24 ++----------------- .../functions/fish_right_prompt.fish | 0 ...rompt_right.fish => t31m_prompt_left.fish} | 4 ++-- main.sh | 5 +++- 5 files changed, 10 insertions(+), 25 deletions(-) delete mode 100644 fish/theme-t31m/functions/fish_right_prompt.fish rename fish/theme-t31m/functions/{t31m_prompt_right.fish => t31m_prompt_left.fish} (80%) diff --git a/fish/theme-t31m/functions/envAWS.fish b/fish/theme-t31m/functions/envAWS.fish index d555a69..3448d5e 100644 --- a/fish/theme-t31m/functions/envAWS.fish +++ b/fish/theme-t31m/functions/envAWS.fish @@ -4,6 +4,7 @@ set AWS_IAM_USER "" # TODO setup your aws-mfa credential keys in the credentials file +# TODO replace "Administrator" Role with the actual role you want to assume. # AWS Account details set DEV_ACCOUNT_ID "" @@ -11,6 +12,7 @@ set STG_ACCOUNT_ID "" set PROD_ACCOUNT_ID "" set OPS_ACCOUNT_ID "" +# Update if different regions are used in your setup export AWS_REGION=eu-west-1 export AWS_DEFAULT_REGION=eu-west-1 diff --git a/fish/theme-t31m/functions/fish_prompt.fish b/fish/theme-t31m/functions/fish_prompt.fish index d870271..a777587 100644 --- a/fish/theme-t31m/functions/fish_prompt.fish +++ b/fish/theme-t31m/functions/fish_prompt.fish @@ -86,32 +86,12 @@ function git::untracked 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 - set t31m_custom_right (t31m_prompt_right) + set t31m_custom_left (t31m_prompt_left) - echo -ns "$t31m_custom_right" + echo -ns "$t31m_custom_left" if test -n "$ssh_client" set -l host (hostname -s) diff --git a/fish/theme-t31m/functions/fish_right_prompt.fish b/fish/theme-t31m/functions/fish_right_prompt.fish deleted file mode 100644 index e69de29..0000000 diff --git a/fish/theme-t31m/functions/t31m_prompt_right.fish b/fish/theme-t31m/functions/t31m_prompt_left.fish similarity index 80% rename from fish/theme-t31m/functions/t31m_prompt_right.fish rename to fish/theme-t31m/functions/t31m_prompt_left.fish index eaaef40..aebc8db 100644 --- a/fish/theme-t31m/functions/t31m_prompt_right.fish +++ b/fish/theme-t31m/functions/t31m_prompt_left.fish @@ -1,5 +1,5 @@ -# moved original theme right prompt to left as we are working with a new line promt now. -function t31m_prompt_right +# moved original theme right prompt to left +function t31m_prompt_left if test "$theme_complete_path" = "yes" set cwd (prompt_pwd) diff --git a/main.sh b/main.sh index fc26221..d302e18 100755 --- a/main.sh +++ b/main.sh @@ -16,7 +16,10 @@ curl -fsSL https://get.docker.com | sh #curl -fsSL https://test.docker.com | sh # install docker-compose -curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose +# v1 +# curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose +# v2 +curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose usermod -aG docker t31m