diff --git a/README.md b/README.md index df98303..85cbdbb 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,7 @@ using matched rule and run it. Rules enabled by default: * `git_no_command` – fixes wrong git commands like `git brnch`; * `git_push` – adds `--set-upstream origin $branch` to previous failed `git push`; * `has_exists_script` – prepends `./` when script/binary exists; +* `ls_lah` – adds -lah to ls; * `lein_not_task` – fixes wrong `lein` tasks like `lein rpl`; * `mkdir_p` – adds `-p` when you trying to create directory without parent; * `no_command` – fixes wrong console commands, for example `vom/vim`; diff --git a/tests/rules/test_ls_lah.py b/tests/rules/test_ls_lah.py new file mode 100644 index 0000000..f7eb3ed --- /dev/null +++ b/tests/rules/test_ls_lah.py @@ -0,0 +1,13 @@ +from mock import patch, Mock +from thefuck.rules.ls_lah import match, get_new_command + + +def test_match(): + assert match(Mock(script='ls file.py'), None) + assert match(Mock(script='ls /opt'), None) + assert not match(Mock(script='ls -lah /opt'), None) + + +def test_get_new_command(): + assert get_new_command( Mock(script='ls file.py'), None) == 'ls -lah file.py' + assert get_new_command( Mock(script='ls'), None) == 'ls -lah' diff --git a/thefuck/rules/ls_lah.py b/thefuck/rules/ls_lah.py new file mode 100644 index 0000000..1de0283 --- /dev/null +++ b/thefuck/rules/ls_lah.py @@ -0,0 +1,7 @@ +def match(command, settings): + return ('ls' in command.script and not ('ls -' in command.script)) + +def get_new_command(command, settings): + command = command.script.split(' ') + command[0] = 'ls -lah' + return ' '.join(command)