From 1e00ba70ff7b76288d27c9fdcda180a10740326f Mon Sep 17 00:00:00 2001 From: Ahmed AbouZaid <6760103+aabouzaid@users.noreply.github.com> Date: Tue, 5 Sep 2023 00:24:48 +0200 Subject: [PATCH] feat(follow-up): early exit if no update is available --- cli/asdf-plugin-manager.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cli/asdf-plugin-manager.sh b/cli/asdf-plugin-manager.sh index e0e2357..26c5b19 100755 --- a/cli/asdf-plugin-manager.sh +++ b/cli/asdf-plugin-manager.sh @@ -96,18 +96,24 @@ add_plugins() { update_plugins() { local managed_plugins="$1" echo "${managed_plugins}" | while read managed_plugin; do - read -r plugin_name plugin_url plugin_ref_current < <(echo ${managed_plugin}) + read -r plugin_name plugin_url plugin_ref_managed < <(echo ${managed_plugin}) - echo "[INFO] Updating: ${plugin_name} ${plugin_url} ${plugin_ref_current} to HEAD" + echo "[INFO] Updating: ${plugin_name} ${plugin_url} ${plugin_ref_managed} to HEAD" + plugin_ref_before_update="$(export_plugins | egrep "^\b${plugin_name}\b\s+" | sed -e 's/^.*\s//')" asdf plugin update "${plugin_name}" - plugin_ref_head="$(export_plugins | egrep "^\b${plugin_name}\b\s+" | sed -e 's/^.*\s//')" + plugin_ref_after_update="$(export_plugins | egrep "^\b${plugin_name}\b\s+" | sed -e 's/^.*\s//')" + + if [[ "${plugin_ref_before_update}" == "${plugin_ref_after_update}" ]]; then + echo "[INFO] The plugin \"${plugin_name}\" with git-ref \"${plugin_ref_managed}\" is already up-to-date." + exit 0 + fi echo "[INFO] Updating git-ref in plugin version file: $(print_plugin_versions_filename)" - sed -i "/^\b${plugin_name}\b/ s/${plugin_ref_current}/${plugin_ref_head}/" "$(print_plugin_versions_filename)" + sed -i "/^\b${plugin_name}\b/ s/${plugin_ref_managed}/${plugin_ref_after_update}/" "$(print_plugin_versions_filename)" echo '!!!' - echo '[CAUTION] Please review the changes since last update:' - echo "$(print_git_compare_url ${plugin_url} ${plugin_ref_current} ${plugin_ref_head})" + echo "[CAUTION] Please review the changes since last update:" + echo "$(print_git_compare_url ${plugin_url} ${plugin_ref_managed} ${plugin_ref_after_update})" echo '!!!' echo "[INFO] Done."