diff options
| author | Victor Boivie <victor.boivie@sonyericsson.com> | 2011-04-05 11:31:10 +0200 |
|---|---|---|
| committer | Shawn O. Pearce <sop@google.com> | 2011-11-29 14:31:56 -0800 |
| commit | 841be34968c91c3ea8d8694bc5910e6388f58cbb (patch) | |
| tree | cd2b3db593611ecad858e841edae17183458f680 | |
| parent | ee1c2f5717fcc137ab887a4aae8a08d50a539b9a (diff) | |
| download | git-repo-841be34968c91c3ea8d8694bc5910e6388f58cbb.tar.gz | |
Don't prompt the user for name/email unless necessary
If the user has already configured a workspace, use these values
when re-running 'repo init'.
Otherwise, if the user has global name and e-mail set, use these.
It's always possible to override this and be prompted by specifying
--config-name when running 'repo init'.
Change-Id: If45f0e4b14884071439fb02709dc5cb53f070f60
| -rwxr-xr-x | repo | 5 | ||||
| -rw-r--r-- | subcmds/init.py | 27 |
2 files changed, 31 insertions, 1 deletions
| @@ -139,6 +139,11 @@ group.add_option('--no-repo-verify', | |||
| 139 | dest='no_repo_verify', action='store_true', | 139 | dest='no_repo_verify', action='store_true', |
| 140 | help='do not verify repo source code') | 140 | help='do not verify repo source code') |
| 141 | 141 | ||
| 142 | # Other | ||
| 143 | group = init_optparse.add_option_group('Other options') | ||
| 144 | group.add_option('--config-name', | ||
| 145 | dest='config_name', action="store_true", default=False, | ||
| 146 | help='Always prompt for name/e-mail') | ||
| 142 | 147 | ||
| 143 | class CloneFailure(Exception): | 148 | class CloneFailure(Exception): |
| 144 | """Indicate the remote clone of repo itself failed. | 149 | """Indicate the remote clone of repo itself failed. |
diff --git a/subcmds/init.py b/subcmds/init.py index e80d698b..a653c80d 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
| @@ -114,6 +114,12 @@ to update the working directory files. | |||
| 114 | dest='no_repo_verify', action='store_true', | 114 | dest='no_repo_verify', action='store_true', |
| 115 | help='do not verify repo source code') | 115 | help='do not verify repo source code') |
| 116 | 116 | ||
| 117 | # Other | ||
| 118 | g = p.add_option_group('Other options') | ||
| 119 | g.add_option('--config-name', | ||
| 120 | dest='config_name', action="store_true", default=False, | ||
| 121 | help='Always prompt for name/e-mail') | ||
| 122 | |||
| 117 | def _SyncManifest(self, opt): | 123 | def _SyncManifest(self, opt): |
| 118 | m = self.manifest.manifestProject | 124 | m = self.manifest.manifestProject |
| 119 | is_new = not m.Exists | 125 | is_new = not m.Exists |
| @@ -212,6 +218,24 @@ fatal: missing manifest url (-u) and no default found. | |||
| 212 | return value | 218 | return value |
| 213 | return a | 219 | return a |
| 214 | 220 | ||
| 221 | def _ShouldConfigureUser(self): | ||
| 222 | gc = self.manifest.globalConfig | ||
| 223 | mp = self.manifest.manifestProject | ||
| 224 | |||
| 225 | # If we don't have local settings, get from global. | ||
| 226 | if not mp.config.Has('user.name') or not mp.config.Has('user.email'): | ||
| 227 | if not gc.Has('user.name') or not gc.Has('user.email'): | ||
| 228 | return True | ||
| 229 | |||
| 230 | mp.config.SetString('user.name', gc.GetString('user.name')) | ||
| 231 | mp.config.SetString('user.email', gc.GetString('user.email')) | ||
| 232 | |||
| 233 | print '' | ||
| 234 | print 'Your identity is: %s <%s>' % (mp.config.GetString('user.name'), | ||
| 235 | mp.config.GetString('user.email')) | ||
| 236 | print 'If you want to change this, please re-run \'repo init\' with --config-name' | ||
| 237 | return False | ||
| 238 | |||
| 215 | def _ConfigureUser(self): | 239 | def _ConfigureUser(self): |
| 216 | mp = self.manifest.manifestProject | 240 | mp = self.manifest.manifestProject |
| 217 | 241 | ||
| @@ -294,7 +318,8 @@ fatal: missing manifest url (-u) and no default found. | |||
| 294 | self._LinkManifest(opt.manifest_name) | 318 | self._LinkManifest(opt.manifest_name) |
| 295 | 319 | ||
| 296 | if os.isatty(0) and os.isatty(1) and not self.manifest.IsMirror: | 320 | if os.isatty(0) and os.isatty(1) and not self.manifest.IsMirror: |
| 297 | self._ConfigureUser() | 321 | if opt.config_name or self._ShouldConfigureUser(): |
| 322 | self._ConfigureUser() | ||
| 298 | self._ConfigureColor() | 323 | self._ConfigureColor() |
| 299 | 324 | ||
| 300 | self._ConfigureDepth(opt) | 325 | self._ConfigureDepth(opt) |
