diff --git a/bashenv/plugn.bash b/bashenv/plugn.bash index a3ce10c..b1add02 100644 --- a/bashenv/plugn.bash +++ b/bashenv/plugn.bash @@ -56,15 +56,15 @@ update() { fi [[ -z "$committish" ]] && [[ ! $(git symbolic-ref HEAD) ]] && echo "Plugin pinned to $(< ./.plugin_committish)" && exit 0 - git checkout master &> /dev/null - git pull &> /dev/null - git checkout - &> /dev/null + git fetch &> /dev/null if [[ -n "$committish" ]]; then git fetch --tags &> /dev/null - git checkout $committish &> /dev/null + git checkout "$committish" &> /dev/null + git pull &> /dev/null || true # in case of branches echo "$committish" > ./.plugin_committish echo "Plugin ($plugin) updated and pinned to $committish" else + git pull &> /dev/null echo "Plugin ($plugin) updated" fi popd &> /dev/null diff --git a/tests/functional/tests.sh b/tests/functional/tests.sh index 5ac675e..20697a7 100755 --- a/tests/functional/tests.sh +++ b/tests/functional/tests.sh @@ -90,6 +90,17 @@ T_plugn-update() { plugn list | grep smoke-test-plugin | grep 0.3.0-testing" } +T_plugn-update-main() { + plugn-test-pass "test-update-main" " + plugn init && \ + plugn install https://github.com/dokku/smoke-test-plugin-main && \ + plugn list | grep smoke-test-plugin-main && \ + plugn update smoke-test-plugin-main v0.2.0 && \ + plugn list | grep smoke-test-plugin-main | grep 0.2.0 && \ + plugn update smoke-test-plugin-main main && \ + plugn list | grep smoke-test-plugin-main | grep 0.9.0" +} + T_plugn-version() { plugn-test-pass "test-version" " plugn init && \