diff --git a/asdf_install b/asdf_install index 7989e82..06d62f3 100755 --- a/asdf_install +++ b/asdf_install @@ -3,6 +3,19 @@ set -e source ~/.asdf/asdf.sh -cat .tool-versions | cut -d \ -f 1 | xargs -n 1 asdf plugin add +REQUIRED_PLUGINS=$(cat .tool-versions | cut -d \ -f 1) +INSTALLED_PLUGINS=$(asdf plugin list) + +for PLUGIN in $REQUIRED_PLUGINS; do + if [[ $INSTALLED_PLUGINS =~ (^|[^[:alpha:]])$PLUGIN([^[:alpha:]]|$) ]]; then + echo "ASDF plugin $PLUGIN already installed" + else + echo "Installing $PLUGIN ASDF plugin..." + asdf plugin add $PLUGIN + echo " ...done" + fi +done + +echo "Running ASDF install..." asdf install -cat .tool-versions | xargs -n 2 asdf global +echo " ...done"