Re-wrap functions as functions. Fixes issue with RVM reload (cd wrapper will be overwritten without error)

This commit is contained in:
Nathan Broadbent
2013-01-30 22:29:05 +13:00
parent 3692db6a3a
commit dd10be79e2
2 changed files with 4 additions and 3 deletions

View File

@@ -60,8 +60,8 @@ if [ "$shell_command_wrapping_enabled" = "true" ] || [ "$bash_command_wrapping_e
eval "$(declare -f $cmd | sed -E "s/^$cmd \(\)/__original_$cmd ()/")" eval "$(declare -f $cmd | sed -E "s/^$cmd \(\)/__original_$cmd ()/")"
# Remove function # Remove function
unset -f $cmd unset -f $cmd
# Create wrapped alias for old function # Create function that wraps old function
alias "$cmd"="exec_scmb_expand_args __original_$cmd";; eval "${cmd}(){ exec_scmb_expand_args __original_${cmd} \"\$@\"; }";;
*'is a shell builtin'*) *'is a shell builtin'*)
if [ "${scmbDebug:-}" = "true" ]; then echo "SCMB: $cmd is a shell builtin"; fi if [ "${scmbDebug:-}" = "true" ]; then echo "SCMB: $cmd is a shell builtin"; fi

View File

@@ -63,7 +63,8 @@ test_shell_command_wrapping() {
assertAliasEquals "exec_scmb_expand_args /bin/sed" "sed" assertAliasEquals "exec_scmb_expand_args /bin/sed" "sed"
assertAliasEquals "exec_scmb_expand_args /bin/cat" "cat" assertAliasEquals "exec_scmb_expand_args /bin/cat" "cat"
assertAliasEquals "exec_scmb_expand_args builtin cd" "cd" assertAliasEquals "exec_scmb_expand_args builtin cd" "cd"
assertAliasEquals "exec_scmb_expand_args __original_ln" "ln" assertIncludes "$(declare -f ln)" "ln ()"
assertIncludes "$(declare -f ln)" "exec_scmb_expand_args __original_ln"
} }
test_ls_with_file_shortcuts() { test_ls_with_file_shortcuts() {