Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
proc = subprocess.Popen('docker', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# Old version docker returns its output to stdout, while newer version returns to stderr.
lines = proc.stdout.readlines() or proc.stderr.readlines()
lines = [line.decode('utf-8') for line in lines]
# Only newer versions of docker have management commands in the help text.
if 'Management Commands:\n' in lines:
management_commands = _parse_commands(lines, 'Management Commands:')
else:
management_commands = []
regular_commands = _parse_commands(lines, 'Commands:')
return management_commands + regular_commands
if which('docker'):
get_docker_commands = cache(which('docker'))(get_docker_commands)
@sudo_support
def get_new_command(command):
if 'Usage:' in command.output and len(command.script_parts) > 1:
management_subcommands = _parse_commands(command.output.split('\n'), 'Commands:')
return replace_command(command, command.script_parts[2], management_subcommands)
wrong_command = re.findall(
r"docker: '(\w+)' is not a docker command.", command.output)[0]
return replace_command(command, wrong_command, get_docker_commands())
import subprocess
from ..utils import memoize, which
brew_available = bool(which('brew'))
@memoize
def get_brew_path_prefix():
"""To get brew path"""
try:
return subprocess.check_output(['brew', '--prefix'],
universal_newlines=True).strip()
except Exception:
return None
def _get_alias(known_args):
if six.PY2:
warn("The Fuck will drop Python 2 support soon, more details "
"https://github.com/nvbn/thefuck/issues/685")
alias = shell.app_alias(known_args.alias)
if known_args.enable_experimental_instant_mode:
if six.PY2:
warn("Instant mode requires Python 3")
elif not which('script'):
warn("Instant mode requires `script` app")
else:
return shell.instant_mode_alias(known_args.alias)
return alias
def match(command):
return (not which(command.script_parts[0])
and ('not found' in command.output
or 'is not recognized as' in command.output)
and bool(get_close_matches(command.script_parts[0],
get_all_executables())))
def archlinux_env():
if thefuck.utils.which('yaourt'):
pacman = 'yaourt'
elif thefuck.utils.which('pacman'):
pacman = 'sudo pacman'
else:
return False, None
enabled_by_default = thefuck.utils.which('pkgfile')
return enabled_by_default, pacman
def archlinux_env():
if utils.which('yay'):
pacman = 'yay'
elif utils.which('yaourt'):
pacman = 'yaourt'
elif utils.which('pacman'):
pacman = 'sudo pacman'
else:
return False, None
enabled_by_default = utils.which('pkgfile')
return enabled_by_default, pacman
def archlinux_env():
if thefuck.utils.which('yaourt'):
pacman = 'yaourt'
elif thefuck.utils.which('pacman'):
pacman = 'sudo pacman'
else:
return False, None
enabled_by_default = thefuck.utils.which('pkgfile')
return enabled_by_default, pacman
def archlinux_env():
if utils.which('yay'):
pacman = 'yay'
elif utils.which('yaourt'):
pacman = 'yaourt'
elif utils.which('pacman'):
pacman = 'sudo pacman'
else:
return False, None
enabled_by_default = utils.which('pkgfile')
return enabled_by_default, pacman
def match(command):
return (not which(command.script_parts[0])
and 'not found' in command.output
and os.path.isfile('gradlew'))