1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-04-07 03:10:41 +01:00
thefuck/thefuck/rules/git_push.py

31 lines
1.0 KiB
Python

from thefuck.utils import replace_argument
from thefuck.specific.git import git_support
@git_support
def match(command):
return ('push' in command.script
and 'set-upstream' in command.stderr)
@git_support
def get_new_command(command):
# If --set-upstream or -u are passed, remove it and its argument. This is
# because the remaining arguments are concatenated onto the command suggested
# by git, which includes --set-upstream and its argument
upstream_option_index = -1
try:
upstream_option_index = command.script_parts.index('--set-upstream')
except ValueError:
pass
try:
upstream_option_index = command.script_parts.index('-u')
except ValueError:
pass
if upstream_option_index is not -1:
command.script_parts.pop(upstream_option_index)
command.script_parts.pop(upstream_option_index)
push_upstream = command.stderr.split('\n')[-3].strip().partition('git ')[2]
return replace_argument(" ".join(command.script_parts), 'push', push_upstream)