let bin/asdf expand args into command functions

This commit is contained in:
Victor Borja 2017-09-04 12:49:38 -05:00
parent e814d58da3
commit 8b40b30dec
2 changed files with 31 additions and 29 deletions

View File

@ -44,71 +44,72 @@ source "$(dirname "$(dirname "$0")")/lib/commands/plugin-test.sh"
# shellcheck disable=SC2124 # shellcheck disable=SC2124
callback_args="${@:2}" callback_args="${@:2}"
# shellcheck disable=SC2086
case $1 in case $1 in
"--version") "--version")
asdf_version "$callback_args";; asdf_version $callback_args;;
"help") "help")
help_command "$callback_args";; help_command $callback_args;;
"update") "update")
update_command "$callback_args";; update_command $callback_args;;
"install") "install")
install_command "$callback_args";; install_command $callback_args;;
"uninstall") "uninstall")
uninstall_command "$callback_args";; uninstall_command $callback_args;;
"current") "current")
current_command "$callback_args";; current_command $callback_args;;
"where") "where")
where_command "$callback_args";; where_command $callback_args;;
"which") "which")
which_command "$callback_args";; which_command $callback_args;;
"local") "local")
local_command "$callback_args";; local_command $callback_args;;
"global") "global")
global_command "$callback_args";; global_command $callback_args;;
"list") "list")
list_command "$callback_args";; list_command $callback_args;;
"list-all") "list-all")
list_all_command "$callback_args";; list_all_command $callback_args;;
"shim") "shim")
shim_command "$callback_args";; shim_command $callback_args;;
"reshim") "reshim")
reshim_command "$callback_args";; reshim_command $callback_args;;
"plugin-add") "plugin-add")
plugin_add_command "$callback_args";; plugin_add_command $callback_args;;
"plugin-list") "plugin-list")
plugin_list_command "$callback_args";; plugin_list_command $callback_args;;
"plugin-list-all") "plugin-list-all")
plugin_list_all_command "$callback_args";; plugin_list_all_command $callback_args;;
"plugin-update") "plugin-update")
plugin_update_command "$callback_args";; plugin_update_command $callback_args;;
"plugin-remove") "plugin-remove")
plugin_remove_command "$callback_args";; plugin_remove_command $callback_args;;
# Undocumented commands for development # Undocumented commands for development
"plugin-push") "plugin-push")
plugin_push_command "$callback_args";; plugin_push_command $callback_args;;
"plugin-test") "plugin-test")
plugin_test_command "$callback_args";; plugin_test_command $callback_args;;
*) *)
help_command help_command

View File

@ -7,8 +7,8 @@ fail_test() {
} }
plugin_test_command() { plugin_test_command() {
export ASDF_DIR
ASDF_DIR=$(mktemp -dt asdf.XXXX) ASDF_DIR=$(mktemp -dt asdf.XXXX)
export ASDF_DIR
git clone https://github.com/asdf-vm/asdf.git "$ASDF_DIR" git clone https://github.com/asdf-vm/asdf.git "$ASDF_DIR"
local plugin_name=$1 local plugin_name=$1
@ -19,11 +19,11 @@ plugin_test_command() {
fail_test "please provide a plugin name and url" fail_test "please provide a plugin name and url"
fi fi
if ! asdf plugin-add "$plugin_name" "$plugin_url"; then if ! (asdf plugin-add "$plugin_name" "$plugin_url"); then
fail_test "could not install $plugin_name from $plugin_url" fail_test "could not install $plugin_name from $plugin_url"
fi fi
if ! asdf plugin-list | grep "$plugin_name" > /dev/null; then if ! (asdf plugin-list | grep "$plugin_name" > /dev/null); then
fail_test "$plugin_name was not properly installed" fail_test "$plugin_name was not properly installed"
fi fi
@ -40,24 +40,25 @@ plugin_test_command() {
local latest_version local latest_version
latest_version=${versions[${#versions[@]} - 1]} latest_version=${versions[${#versions[@]} - 1]}
if ! asdf install "$plugin_name" "$latest_version"; then if ! (asdf install "$plugin_name" "$latest_version"); then
fail_test "install exited with an error" fail_test "install exited with an error"
fi fi
cd "$ASDF_DIR" || fail_test "could not cd $ASDF_DIR" cd "$ASDF_DIR" || fail_test "could not cd $ASDF_DIR"
if ! asdf local "$plugin_name" "$latest_version"; then if ! (asdf local "$plugin_name" "$latest_version"); then
fail_test "install did not add the requested version" fail_test "install did not add the requested version"
fi fi
if ! asdf reshim "$plugin_name"; then if ! (asdf reshim "$plugin_name"); then
fail_test "could not reshim plugin" fail_test "could not reshim plugin"
fi fi
if [ -n "$plugin_command" ]; then if [ -n "$plugin_command" ]; then
(env PATH="$ASDF_DIR/bin:$ASDF_DIR/shims:$PATH" eval "$plugin_command") (PATH="$ASDF_DIR/bin:$ASDF_DIR/shims:$PATH" eval "$plugin_command")
local exit_code
exit_code=$? exit_code=$?
if [ $exit_code -ne 0 ]; then if [ $exit_code != 0 ]; then
fail_test "$plugin_command failed with exit code $?" fail_test "$plugin_command failed with exit code $?"
fi fi
fi fi