@ -3443,50 +3443,67 @@ 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
class _GitCookiesChecker ( object ) :
""" Provides facilties for validating and suggesting fixes to .gitcookies. """
def ensure_configured_gitcookies ( self ) :
""" Runs checks and suggests fixes to make git use .gitcookies from default
path . """
default = gerrit_util . CookiesAuthenticator . get_gitcookies_path ( )
configured_path = RunGitSilent (
[ ' config ' , ' --global ' , ' http.cookiefile ' ] ) . strip ( )
if configured_path :
self . _ensure_default_gitcookies_path ( configured_path , default )
else :
self . _configure_gitcookies_path ( default )
@staticmethod
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 ) )
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 )
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 ' )
confirm_or_exit ( ' Move existing .gitcookies to default location? ' ,
action = ' move ' )
shutil . move ( configured_path , default_path )
RunGit ( [ ' config ' , ' --global ' , ' http.cookiefile ' , default_path ] )
return
print ( ' Moved and reconfigured git to use .gitcookies from %s ' %
default_path )
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 )
@staticmethod
def _configure_gitcookies_path ( default_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 ' % ( default_path , default_path ) )
confirm_or_exit ( action = ' setup .gitcookies ' )
RunGit ( [ ' config ' , ' --global ' , ' http.cookiefile ' , default_path ] )
print ( ' Configured git to use .gitcookies from %s ' % default_path )
def CMDcreds_check ( parser , args ) :
@ -3496,13 +3513,8 @@ def CMDcreds_check(parser, 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 )
checker = _GitCookiesChecker ( )
checker . ensure_configured_gitcookies ( )
# TODO(tandrii): finish this.
return 0