|
|
|
@ -22,6 +22,7 @@ import multiprocessing
|
|
|
|
|
import optparse
|
|
|
|
|
import os
|
|
|
|
|
import re
|
|
|
|
|
import shutil
|
|
|
|
|
import stat
|
|
|
|
|
import sys
|
|
|
|
|
import textwrap
|
|
|
|
@ -187,7 +188,7 @@ def confirm_or_exit(prefix='', action='confirm'):
|
|
|
|
|
"""Asks user to press enter to continue or press Ctrl+C to abort."""
|
|
|
|
|
if not prefix or prefix.endswith('\n'):
|
|
|
|
|
mid = 'Press'
|
|
|
|
|
elif prefix.endswith('.'):
|
|
|
|
|
elif prefix.endswith('.') or prefix.endswith('?'):
|
|
|
|
|
mid = ' Press'
|
|
|
|
|
elif prefix.endswith(' '):
|
|
|
|
|
mid = 'press'
|
|
|
|
@ -3442,6 +3443,70 @@ def GetRietveldCodereviewSettingsInteractively():
|
|
|
|
|
'run-post-upload-hook', False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _ensure_default_gitcookies_path(configured_path, default_path):
|
|
|
|
|
assert configured_path
|
|
|
|
|
if configured_path == default_path:
|
|
|
|
|
print('git is already configured to use your .gitcookies from %s' %
|
|
|
|
|
configured_path)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
print('WARNING: you have configured custom path to .gitcookies: %s\n'
|
|
|
|
|
'Gerrit and other depot_tools expect .gitcookies at %s\n' %
|
|
|
|
|
(configured_path, default_path))
|
|
|
|
|
|
|
|
|
|
if not os.path.exists(configured_path):
|
|
|
|
|
print('However, your configured .gitcookies file is missing.')
|
|
|
|
|
confirm_or_exit('Reconfigure git to use default .gitcookies?',
|
|
|
|
|
action='reconfigure')
|
|
|
|
|
RunGit(['config', '--global', 'http.cookiefile', default_path])
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if os.path.exists(default_path):
|
|
|
|
|
print('WARNING: default .gitcookies file already exists %s' % default_path)
|
|
|
|
|
DieWithError('Please delete %s manually and re-run git cl creds-check' %
|
|
|
|
|
default_path)
|
|
|
|
|
|
|
|
|
|
confirm_or_exit('Move existing .gitcookies to default location?',
|
|
|
|
|
action='move')
|
|
|
|
|
shutil.move(configured_path, default_path)
|
|
|
|
|
RunGit(['config', '--global', 'http.cookiefile', default_path])
|
|
|
|
|
print('Moved and reconfigured git to use .gitcookies from %s' % default_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _configure_gitcookies_path(gitcookies_path):
|
|
|
|
|
netrc_path = gerrit_util.CookiesAuthenticator.get_netrc_path()
|
|
|
|
|
if os.path.exists(netrc_path):
|
|
|
|
|
print('You seem to be using outdated .netrc for git credentials: %s' %
|
|
|
|
|
netrc_path)
|
|
|
|
|
print('This tool will guide you through setting up recommended '
|
|
|
|
|
'.gitcookies store for git credentials.\n'
|
|
|
|
|
'\n'
|
|
|
|
|
'IMPORTANT: If something goes wrong and you decide to go back, do:\n'
|
|
|
|
|
' git config --global --unset http.cookiefile\n'
|
|
|
|
|
' mv %s %s.backup\n\n' % (gitcookies_path, gitcookies_path))
|
|
|
|
|
confirm_or_exit(action='setup .gitcookies')
|
|
|
|
|
RunGit(['config', '--global', 'http.cookiefile', gitcookies_path])
|
|
|
|
|
print('Configured git to use .gitcookies from %s' % gitcookies_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def CMDcreds_check(parser, args):
|
|
|
|
|
"""Checks credentials and suggests changes."""
|
|
|
|
|
_, _ = parser.parse_args(args)
|
|
|
|
|
|
|
|
|
|
if gerrit_util.GceAuthenticator.is_gce():
|
|
|
|
|
DieWithError('this command is not designed for GCE, are you on a bot?')
|
|
|
|
|
|
|
|
|
|
gitcookies_path = gerrit_util.CookiesAuthenticator.get_gitcookies_path()
|
|
|
|
|
configured_gitcookies_path = RunGitSilent(
|
|
|
|
|
['config', '--global', 'http.cookiefile']).strip()
|
|
|
|
|
if configured_gitcookies_path:
|
|
|
|
|
_ensure_default_gitcookies_path(configured_gitcookies_path, gitcookies_path)
|
|
|
|
|
else:
|
|
|
|
|
_configure_gitcookies_path(gitcookies_path)
|
|
|
|
|
# TODO(tandrii): finish this.
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@subcommand.usage('[repo root containing codereview.settings]')
|
|
|
|
|
def CMDconfig(parser, args):
|
|
|
|
|
"""Edits configuration for this tree."""
|
|
|
|
|