mirror of
https://github.com/nvbn/thefuck.git
synced 2025-02-23 05:18:38 +00:00
bash: fallback to generic parser if bashlex fails
This commit is contained in:
parent
dbedcc7aa6
commit
4f87141f0c
@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import bashlex
|
import bashlex
|
||||||
|
import six
|
||||||
from ..conf import settings
|
from ..conf import settings
|
||||||
from ..utils import memoize
|
from ..utils import memoize
|
||||||
from .generic import Generic
|
from .generic import Generic
|
||||||
@ -48,4 +49,17 @@ class Bash(Generic):
|
|||||||
return 'eval $(thefuck --alias)', config
|
return 'eval $(thefuck --alias)', config
|
||||||
|
|
||||||
def split_command(self, command):
|
def split_command(self, command):
|
||||||
return list(bashlex.split(command))
|
if six.PY2:
|
||||||
|
command = command.encode('utf8')
|
||||||
|
|
||||||
|
# If bashlex fails for some reason, fallback to shlex
|
||||||
|
# See https://github.com/idank/bashlex#limitations
|
||||||
|
try:
|
||||||
|
command_parts = list(bashlex.split(command))
|
||||||
|
except:
|
||||||
|
return Generic().split_command(command)
|
||||||
|
|
||||||
|
if six.PY2:
|
||||||
|
return [s.decode('utf8') for s in command_parts]
|
||||||
|
else:
|
||||||
|
return command_parts
|
||||||
|
Loading…
x
Reference in New Issue
Block a user