From 71bda32dc083cb0f18ecf92e26de9170be695684 Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Fri, 29 Sep 2017 05:39:36 -0400 Subject: [PATCH 1/4] Add version to commands Add a helper to show the current git SHA of the installed git repo. Signed-off-by: Mike Fiedler --- lib/helpers.bash | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/helpers.bash b/lib/helpers.bash index 902e6a2b..2ef0f0ff 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -61,7 +61,7 @@ function reload_plugins() { bash-it () { about 'Bash-it help and maintenance' - param '1: verb [one of: help | show | enable | disable | migrateĀ | update | search ] ' + param '1: verb [one of: help | show | enable | disable | migrateĀ | update | search | version ] ' param '2: component type [one of: alias(es) | completion(s) | plugin(s) ] or search term(s)' param '3: specific component [optional]' example '$ bash-it show plugins' @@ -71,6 +71,7 @@ bash-it () example '$ bash-it migrate' example '$ bash-it update' example '$ bash-it search ruby [[-]rake]... [--enable | --disable]' + example '$ bash-it version' typeset verb=${1:-} shift typeset component=${1:-} @@ -90,8 +91,10 @@ bash-it () return;; update) func=_bash-it_update;; - migrate) + migrate) func=_bash-it-migrate;; + version) + func=_bash-it-version;; *) reference bash-it return;; @@ -227,6 +230,19 @@ _bash-it-migrate() { fi } +_bash-it-version() { + _about 'shows current Bash-it version' + _group 'lib' + + cd "${BASH_IT}" || return + + echo "Current git SHA:" + echo "$(git log --pretty=format:'%h on %aI' -n 1)" + + CURRENT_GIT_SHA=$(git rev-parse --verify HEAD) + echo "https://github.com/Bash-it/bash-it/commit/$CURRENT_GIT_SHA" +} + _bash-it-describe () { _about 'summarizes available bash_it components' From 47041bc817a77482e23c0703b83e0eb2ed6bc514 Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Fri, 29 Sep 2017 17:15:14 -0400 Subject: [PATCH 2/4] Add bash-it completion for version command Signed-off-by: Mike Fiedler --- completion/available/bash-it.completion.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/completion/available/bash-it.completion.bash b/completion/available/bash-it.completion.bash index e59b3fb1..20a94e5b 100644 --- a/completion/available/bash-it.completion.bash +++ b/completion/available/bash-it.completion.bash @@ -65,7 +65,7 @@ _bash-it-comp() prev="${COMP_WORDS[COMP_CWORD-1]}" chose_opt="${COMP_WORDS[1]}" file_type="${COMP_WORDS[2]}" - opts="disable enable help migrate search show update" + opts="disable enable help migrate search show update version" case "${chose_opt}" in show) local show_args="aliases completions plugins" @@ -82,7 +82,7 @@ _bash-it-comp() return 0 fi ;; - update | search | migrate) + update | search | migrate | version) return 0 ;; enable | disable) From 8015bba27f5910dbd74df74a2897f24f3a65396e Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Sat, 30 Sep 2017 20:06:42 -0400 Subject: [PATCH 3/4] Exit directory upon completion, update tests Signed-off-by: Mike Fiedler --- lib/helpers.bash | 2 ++ test/completion/bash-it.completion.bats | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/helpers.bash b/lib/helpers.bash index 2ef0f0ff..2a58fe04 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -241,6 +241,8 @@ _bash-it-version() { CURRENT_GIT_SHA=$(git rev-parse --verify HEAD) echo "https://github.com/Bash-it/bash-it/commit/$CURRENT_GIT_SHA" + + cd - &> /dev/null || return } _bash-it-describe () diff --git a/test/completion/bash-it.completion.bats b/test/completion/bash-it.completion.bats index e2f1f415..eb77edae 100644 --- a/test/completion/bash-it.completion.bats +++ b/test/completion/bash-it.completion.bats @@ -99,32 +99,32 @@ function __check_completion () { @test "completion bash-it: show options" { run __check_completion 'bash-it ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: bash-ti - show options" { run __check_completion 'bash-ti ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: shit - show options" { run __check_completion 'shit ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: bashit - show options" { run __check_completion 'bashit ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: batshit - show options" { run __check_completion 'batshit ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: bash_it - show options" { run __check_completion 'bash_it ' - assert_line "0" "disable enable help migrate search show update" + assert_line "0" "disable enable help migrate search show update version" } @test "completion bash-it: show - show options" { From b0bceb963e3b93a1194e954958145cce7417bb0e Mon Sep 17 00:00:00 2001 From: Mike Fiedler Date: Sun, 1 Oct 2017 16:20:28 -0400 Subject: [PATCH 4/4] Replace subshell for git hash, add remote info Signed-off-by: Mike Fiedler --- lib/helpers.bash | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/helpers.bash b/lib/helpers.bash index 2a58fe04..81f7280b 100644 --- a/lib/helpers.bash +++ b/lib/helpers.bash @@ -236,11 +236,18 @@ _bash-it-version() { cd "${BASH_IT}" || return - echo "Current git SHA:" - echo "$(git log --pretty=format:'%h on %aI' -n 1)" + if [ -z $BASH_IT_REMOTE ]; then + BASH_IT_REMOTE="origin" + fi - CURRENT_GIT_SHA=$(git rev-parse --verify HEAD) - echo "https://github.com/Bash-it/bash-it/commit/$CURRENT_GIT_SHA" + BASH_IT_GIT_REMOTE=$(git remote get-url $BASH_IT_REMOTE) + BASH_IT_GIT_URL=${BASH_IT_GIT_REMOTE%.git} + + BASH_IT_GIT_VERSION_INFO="$(git log --pretty=format:'%h on %aI' -n 1)" + BASH_IT_GIT_SHA=${BASH_IT_GIT_VERSION_INFO%% *} + + echo "Current git SHA: $BASH_IT_GIT_VERSION_INFO" + echo "$BASH_IT_GIT_URL/commit/$BASH_IT_GIT_SHA" cd - &> /dev/null || return }