mirror of
https://github.com/nvbn/thefuck.git
synced 2025-01-31 10:11:14 +00:00
refact(shells): add and_
method to assemble expressions involving AND
Signed-off-by: Pablo Santiago Blum de Aguiar <scorphus@gmail.com>
This commit is contained in:
parent
d854320acc
commit
3d0d4be4a9
0
tests/rules/__init__.py
Normal file
0
tests/rules/__init__.py
Normal file
6
tests/rules/conftest.py
Normal file
6
tests/rules/conftest.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def generic_shell(monkeypatch):
|
||||||
|
monkeypatch.setattr('thefuck.shells.and_', lambda *x: ' && '.join(x))
|
@ -1,3 +1,5 @@
|
|||||||
|
from thefuck import shells
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import CommandNotFound
|
import CommandNotFound
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -20,4 +22,5 @@ def get_new_command(command, settings):
|
|||||||
c = CommandNotFound.CommandNotFound()
|
c = CommandNotFound.CommandNotFound()
|
||||||
pkgs = c.getPackages(command.script.split(" ")[0])
|
pkgs = c.getPackages(command.script.split(" ")[0])
|
||||||
name, _ = pkgs[0]
|
name, _ = pkgs[0]
|
||||||
return "sudo apt-get install {} && {}".format(name, command.script)
|
formatme = shells.and_('sudo apt-get install {}', '{}')
|
||||||
|
return formatme.format(name, command.script)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import re
|
import re
|
||||||
|
from thefuck import shells
|
||||||
from thefuck.utils import sudo_support
|
from thefuck.utils import sudo_support
|
||||||
|
|
||||||
|
|
||||||
@ -11,4 +12,5 @@ def match(command, settings):
|
|||||||
|
|
||||||
@sudo_support
|
@sudo_support
|
||||||
def get_new_command(command, settings):
|
def get_new_command(command, settings):
|
||||||
return re.sub(r'^cd (.*)', 'mkdir -p \\1 && cd \\1', command.script)
|
repl = shells.and_('mkdir -p \\1', 'cd \\1')
|
||||||
|
return re.sub(r'^cd (.*)', repl, command.script)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import re
|
import re
|
||||||
|
from thefuck import shells
|
||||||
|
|
||||||
|
|
||||||
def match(command, settings):
|
def match(command, settings):
|
||||||
@ -12,4 +13,5 @@ def get_new_command(command, settings):
|
|||||||
r"error: pathspec '([^']*)' "
|
r"error: pathspec '([^']*)' "
|
||||||
"did not match any file\(s\) known to git.", command.stderr)[0]
|
"did not match any file\(s\) known to git.", command.stderr)[0]
|
||||||
|
|
||||||
return 'git add -- {} && {}'.format(missing_file, command.script)
|
formatme = shells.and_('git add -- {}', '{}')
|
||||||
|
return formatme.format(missing_file, command.script)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import re
|
import re
|
||||||
|
from thefuck import shells
|
||||||
|
|
||||||
|
|
||||||
def match(command, settings):
|
def match(command, settings):
|
||||||
@ -12,4 +13,5 @@ def get_new_command(command, settings):
|
|||||||
r"error: pathspec '([^']*)' "
|
r"error: pathspec '([^']*)' "
|
||||||
"did not match any file\(s\) known to git.", command.stderr)[0]
|
"did not match any file\(s\) known to git.", command.stderr)[0]
|
||||||
|
|
||||||
return 'git branch {} && {}'.format(missing_file, command.script)
|
formatme = shells.and_('git branch {}', '{}')
|
||||||
|
return formatme.format(missing_file, command.script)
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
from thefuck import shells
|
||||||
|
|
||||||
|
|
||||||
def match(command, settings):
|
def match(command, settings):
|
||||||
# catches "Please commit or stash them" and "Please, commit your changes or
|
# catches "Please commit or stash them" and "Please, commit your changes or
|
||||||
# stash them before you can switch branches."
|
# stash them before you can switch branches."
|
||||||
@ -5,4 +8,5 @@ def match(command, settings):
|
|||||||
|
|
||||||
|
|
||||||
def get_new_command(command, settings):
|
def get_new_command(command, settings):
|
||||||
return 'git stash && ' + command.script
|
formatme = shells.and_('git stash', '{}')
|
||||||
|
return formatme.format(command.script)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import re
|
import re
|
||||||
|
from thefuck import shells
|
||||||
|
|
||||||
|
|
||||||
patterns = (
|
patterns = (
|
||||||
@ -25,4 +26,5 @@ def get_new_command(command, settings):
|
|||||||
file = file[0]
|
file = file[0]
|
||||||
dir = file[0:file.rfind('/')]
|
dir = file[0:file.rfind('/')]
|
||||||
|
|
||||||
return 'mkdir -p {} && {}'.format(dir, command.script)
|
formatme = shells.and_('mkdir -p {}', '{}')
|
||||||
|
return formatme.format(dir, command.script)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
from thefuck import shells
|
||||||
from thefuck.utils import DEVNULL
|
from thefuck.utils import DEVNULL
|
||||||
|
|
||||||
|
|
||||||
@ -30,7 +31,8 @@ def match(command, settings):
|
|||||||
def get_new_command(command, settings):
|
def get_new_command(command, settings):
|
||||||
package = __get_pkgfile(command)[0]
|
package = __get_pkgfile(command)[0]
|
||||||
|
|
||||||
return '{} -S {} && {}'.format(pacman, package, command.script)
|
formatme = shells.and_('{} -S {}', '{}')
|
||||||
|
return formatme.format(pacman, package, command.script)
|
||||||
|
|
||||||
|
|
||||||
if not __command_available('pkgfile'):
|
if not __command_available('pkgfile'):
|
||||||
|
@ -47,6 +47,9 @@ class Generic(object):
|
|||||||
with open(history_file_name, 'a') as history:
|
with open(history_file_name, 'a') as history:
|
||||||
history.write(self._get_history_line(command_script))
|
history.write(self._get_history_line(command_script))
|
||||||
|
|
||||||
|
def and_(self, *commands):
|
||||||
|
return ' && '.join(commands)
|
||||||
|
|
||||||
|
|
||||||
class Bash(Generic):
|
class Bash(Generic):
|
||||||
def app_alias(self):
|
def app_alias(self):
|
||||||
@ -150,3 +153,7 @@ def app_alias():
|
|||||||
|
|
||||||
def put_to_history(command):
|
def put_to_history(command):
|
||||||
return _get_shell().put_to_history(command)
|
return _get_shell().put_to_history(command)
|
||||||
|
|
||||||
|
|
||||||
|
def and_(*commands):
|
||||||
|
return _get_shell().and_(*commands)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user