diff --git a/plugins/better-alias/balias.fish b/plugins/better-alias/balias.fish index d818791..a80c725 100644 --- a/plugins/better-alias/balias.fish +++ b/plugins/better-alias/balias.fish @@ -1,11 +1,10 @@ function balias --argument alias command eval 'alias $alias $command' - if expr match $command '^sudo '>/dev/null - set command (expr substr + $command 6 (expr length $command)) + if expr $command : '^sudo '>/dev/null + set command (echo "$command" | cut -c6-) end complete -c $alias -xa "( set -l cmd (commandline -pc | sed -e 's/^ *\S\+ *//' ); complete -C\"$command \$cmd\"; )" end - diff --git a/plugins/better-alias/balias.spec.fish b/plugins/better-alias/balias.spec.fish new file mode 100644 index 0000000..8b869a8 --- /dev/null +++ b/plugins/better-alias/balias.spec.fish @@ -0,0 +1,36 @@ +import plugins/fish-spec +import plugins/balias + +function describe_library -d "better-alias" + + function after_all + functions -e changedir + functions -e ls_as_root + end + + function it_doesnt_fail + balias changedir cd + expect test $status --to-be-true + end + + function it_defines_an_alias + functions changedir + expect test $status --to-be-true + end + + function you_can_use_the_alias + mkdir testdir + changedir testdir + expect test $status --to-be-true + cd .. + rmdir testdir + end + + function it_chops_off_sudo + balias ls_as_root 'sudo ls' + expect test $status --to-be-true + end + +end + +spec.run $argv \ No newline at end of file