scripts/alias in rvm-1.0.4 vs scripts/alias in rvm-1.0.5
- old
+ new
@@ -2,10 +2,27 @@
unset rvm_default_flag rvm_wrapper_name
source "$rvm_scripts_path"/base
+usage() {
+ printf "
+
+ Usage:
+
+ rvm alias [action] [arguments]
+
+ Examples:
+
+ rvm alias create [alias_name] [ruby]
+ rvm alias delete [alias_name]
+ rvm alias show [alias_name]
+ rvm alias list
+
+"
+}
+
alias_conflicts_with_ruby() {
# If default exists, we should return true.
[[ "$1" == "default" && ! -L "$rvm_rubies_path/default" ]] && return 1
# Open for suggestions to a better way of doing this...
alias_check_result="$(
@@ -13,59 +30,63 @@
\. \"$rvm_scripts_path/selector\"
export rvm_ruby_string=\"$1\"
__rvm_ruby_string > /dev/null 2>&1
echo "$?"
)"
+
if [[ "0" == "$alias_check_result" ]]; then
- "$rvm_scripts_path"/log "error" "You are attempted to create an alias called '$1', which is recognized as a rvm ruby."
+ "$rvm_scripts_path"/log "error" "\nYou have attempted to create an alias called '$1', which is recognized as a rvm ruby.\n"
return 0
fi
+
return 1
+
unset alias_check_result
}
-show_alias() {
+alias_show() {
if [[ -z "$alias_name" ]]; then
- "$rvm_scripts_path"/log "error" "usage: 'rvm alias show [alias_name]'"
+ "$rvm_scripts_path"/log "error" "\nusage: 'rvm alias show [alias_name]'\n"
result=1
return
fi
expanded_alias_name="$("$rvm_scripts_path"/db "$rvm_config_path/alias" "$alias_name")"
if [[ -z "$expanded_alias_name" ]]; then
- "$rvm_scripts_path"/log "error" "Unknown alias name: '$alias_name'"
+ "$rvm_scripts_path"/log "error" "\nUnknown alias name: '$alias_name'\n"
result=1
else
result=0
if [[ -n "$gemset_name" ]] ; then
- printf "${expanded_alias_name}${rvm_gemset_separator}${gemset_name}"
+ printf "${expanded_alias_name}${rvm_gemset_separator}${gemset_name}\n"
else
- printf "$expanded_alias_name"
+ printf "$expanded_alias_name\n"
fi
fi
unset expanded_alias_name
}
-delete_alias() {
+alias_delete() {
echo "Deleting alias: $alias_name"
+
for link in "$rvm_rubies_path/$alias_name" ; do
if [[ -L "$link" ]] ; then rm -f $link ; fi
done
"$rvm_scripts_path"/db "$rvm_config_path/alias" "$alias_name" "delete"
}
-create_alias() {
+alias_create() {
rvm_environment_identifier="${rvm_environment_identifier:-""}"
alias_name="${alias_name:-""}"
rvm_ruby_string="${rvm_ruby_string:-""}"
if alias_conflicts_with_ruby "$alias_name"; then
# Force it to an empty alias name to trigger the usage.
alias_name=""
fi
if [[ -z "$rvm_environment_identifier" ]] || [[ -z "$alias_name" ]] ; then
- "$rvm_scripts_path"/log "error" "usage: 'rvm alias [alias_name] [ruby_string]'"
+ "$rvm_scripts_path"/log "error" "\nusage: 'rvm alias [alias_name] [ruby_string]'\n"
result=1
else
if [[ -z "$rvm_alias" ]] ; then
rvm_ruby_string="$rvm_environment_identifier"
if [[ -z "$rvm_alias_expanded" ]]; then
@@ -74,25 +95,25 @@
unset rvm_expanding_aliases
else
rvm_ruby_string="$rvm_environment_identifier"
fi
if [[ -z "$rvm_ruby_string" ]]; then
- "$rvm_scripts_path"/log "error" "unknown ruby string specified"
+ "$rvm_scripts_path"/log "error" "\nUnknown ruby string '$rvm_ruby_string' specified\n"
result=1
return
fi
final_environment_identifier="$(__rvm_environment_identifier)"
"$rvm_scripts_path"/log "info" "Creating alias $alias_name for $final_environment_identifier."
ln -nfs "$rvm_rubies_path/$rvm_ruby_string" "$rvm_rubies_path/$alias_name"
"$rvm_scripts_path"/log "info" "Recording alias $alias_name for $final_environment_identifier."
"$rvm_scripts_path"/db "$rvm_config_path/alias" "$alias_name" "$final_environment_identifier"
else
if [[ -d "$rvm_rubies_path/$alias_name" ]] ; then
- "$rvm_scripts_path"/log "error" "$rvm_rubies_path/$alias_name is taken and is *not* able to be an alias name."
+ "$rvm_scripts_path"/log "error" "\n$rvm_rubies_path/$alias_name is taken and is *not* able to be an alias name.\n"
result=1
else
- "$rvm_scripts_path"/log "error" "$rvm_rubies_path/$alias_name is already aliased."
+ "$rvm_scripts_path"/log "error" "\n$rvm_rubies_path/$alias_name is already aliased.\n"
result=1
fi
fi
fi
}
@@ -104,39 +125,40 @@
fi
done; unset item
}
args=($*)
-action="${args[0]}"
-alias_name="${args[1]}"
-rvm_environment_identifier="${args[2]}"
+action="${args[0]:-""}"
+alias_name="${args[1]:-""}"
+rvm_environment_identifier="${args[2]:-""}"
args="$(echo ${args[@]:3}) " # Strip trailing / leading / extra spacing.
+result=0
if [[ ! -f "$rvm_config_path/alias" ]] ; then touch "$rvm_config_path/alias" ; fi
+
if printf "$alias_name" | grep -q "$rvm_gemset_separator" ; then
gemset_name="${alias_name/*${rvm_gemset_separator}/}"
alias_name="${alias_name/${rvm_gemset_separator}*/}"
+else
+ gemset_name=""
fi
+
if [[ ! -z "$alias_name" ]] ; then
rvm_alias="$("$rvm_scripts_path"/db "$rvm_config_path/alias" "$alias_name")"
fi
-# CLI API:
-# rvm alias create [alias_name] [ruby]
-# rvm alias delete [alias_name]
-# rvm alias show [alias_name]
-# rvm alias list
if [[ "$action" = "delete" ]] ; then
- delete_alias
+ alias_delete
elif [[ "$action" = "create" ]] ; then
- create_alias
+ alias_create
elif [[ "$action" = "list" ]] ; then
alias_list
elif [[ "$action" = "show" ]]; then
- show_alias
+ alias_show
+elif [[ "$action" = "help" ]]; then
+ usage
else
- "$rvm_scripts_path"/log "error" "usage: 'rvm alias [action] [arguments]"
+ usage
+ exit 1
fi
-unset action alias_name rvm_ruby_string rvm_environment_identifier final_environment_identifier
-
-exit $result
+exit $?