summaryrefslogtreecommitdiffstats
path: root/repo
diff options
context:
space:
mode:
Diffstat (limited to 'repo')
-rwxr-xr-xrepo36
1 files changed, 20 insertions, 16 deletions
diff --git a/repo b/repo
index eeb8920b..56d784fb 100755
--- a/repo
+++ b/repo
@@ -110,6 +110,7 @@ REPO_MAIN = S_repo + '/main.py' # main script
110MIN_PYTHON_VERSION = (2, 6) # minimum supported python version 110MIN_PYTHON_VERSION = (2, 6) # minimum supported python version
111 111
112 112
113import errno
113import optparse 114import optparse
114import os 115import os
115import re 116import re
@@ -138,10 +139,9 @@ def _print(*objects, **kwargs):
138# Python version check 139# Python version check
139ver = sys.version_info 140ver = sys.version_info
140if ver[0] == 3: 141if ver[0] == 3:
141 _print('error: Python 3 support is not fully implemented in repo yet.\n' 142 _print('warning: Python 3 support is currently experimental. YMMV.\n'
142 'Please use Python 2.6 - 2.7 instead.', 143 'Please use Python 2.6 - 2.7 instead.',
143 file=sys.stderr) 144 file=sys.stderr)
144 sys.exit(1)
145if (ver[0], ver[1]) < MIN_PYTHON_VERSION: 145if (ver[0], ver[1]) < MIN_PYTHON_VERSION:
146 _print('error: Python version %s unsupported.\n' 146 _print('error: Python version %s unsupported.\n'
147 'Please use Python 2.6 - 2.7 instead.' 147 'Please use Python 2.6 - 2.7 instead.'
@@ -181,6 +181,10 @@ group.add_option('--reference',
181group.add_option('--depth', type='int', default=None, 181group.add_option('--depth', type='int', default=None,
182 dest='depth', 182 dest='depth',
183 help='create a shallow clone with given depth; see git clone') 183 help='create a shallow clone with given depth; see git clone')
184group.add_option('--archive',
185 dest='archive', action='store_true',
186 help='checkout an archive instead of a git repository for '
187 'each project. See git archive.')
184group.add_option('-g', '--groups', 188group.add_option('-g', '--groups',
185 dest='groups', default='default', 189 dest='groups', default='default',
186 help='restrict manifest projects to ones with specified ' 190 help='restrict manifest projects to ones with specified '
@@ -240,10 +244,10 @@ def _Init(args):
240 _print("fatal: invalid branch name '%s'" % branch, file=sys.stderr) 244 _print("fatal: invalid branch name '%s'" % branch, file=sys.stderr)
241 raise CloneFailure() 245 raise CloneFailure()
242 246
243 if not os.path.isdir(repodir): 247 try:
244 try: 248 os.mkdir(repodir)
245 os.mkdir(repodir) 249 except OSError as e:
246 except OSError as e: 250 if e.errno != errno.EEXIST:
247 _print('fatal: cannot make %s directory: %s' 251 _print('fatal: cannot make %s directory: %s'
248 % (repodir, e.strerror), file=sys.stderr) 252 % (repodir, e.strerror), file=sys.stderr)
249 # Don't raise CloneFailure; that would delete the 253 # Don't raise CloneFailure; that would delete the
@@ -322,18 +326,18 @@ def NeedSetupGnuPG():
322 326
323 327
324def SetupGnuPG(quiet): 328def SetupGnuPG(quiet):
325 if not os.path.isdir(home_dot_repo): 329 try:
326 try: 330 os.mkdir(home_dot_repo)
327 os.mkdir(home_dot_repo) 331 except OSError as e:
328 except OSError as e: 332 if e.errno != errno.EEXIST:
329 _print('fatal: cannot make %s directory: %s' 333 _print('fatal: cannot make %s directory: %s'
330 % (home_dot_repo, e.strerror), file=sys.stderr) 334 % (home_dot_repo, e.strerror), file=sys.stderr)
331 sys.exit(1) 335 sys.exit(1)
332 336
333 if not os.path.isdir(gpg_dir): 337 try:
334 try: 338 os.mkdir(gpg_dir, stat.S_IRWXU)
335 os.mkdir(gpg_dir, stat.S_IRWXU) 339 except OSError as e:
336 except OSError as e: 340 if e.errno != errno.EEXIST:
337 _print('fatal: cannot make %s directory: %s' % (gpg_dir, e.strerror), 341 _print('fatal: cannot make %s directory: %s' % (gpg_dir, e.strerror),
338 file=sys.stderr) 342 file=sys.stderr)
339 sys.exit(1) 343 sys.exit(1)
@@ -739,7 +743,7 @@ def main(orig_args):
739 repo_main = my_main 743 repo_main = my_main
740 744
741 ver_str = '.'.join(map(str, VERSION)) 745 ver_str = '.'.join(map(str, VERSION))
742 me = [repo_main, 746 me = [sys.executable, repo_main,
743 '--repo-dir=%s' % rel_repo_dir, 747 '--repo-dir=%s' % rel_repo_dir,
744 '--wrapper-version=%s' % ver_str, 748 '--wrapper-version=%s' % ver_str,
745 '--wrapper-path=%s' % wrapper_path, 749 '--wrapper-path=%s' % wrapper_path,
@@ -747,7 +751,7 @@ def main(orig_args):
747 me.extend(orig_args) 751 me.extend(orig_args)
748 me.extend(extra_args) 752 me.extend(extra_args)
749 try: 753 try:
750 os.execv(repo_main, me) 754 os.execv(sys.executable, me)
751 except OSError as e: 755 except OSError as e:
752 _print("fatal: unable to start %s" % repo_main, file=sys.stderr) 756 _print("fatal: unable to start %s" % repo_main, file=sys.stderr)
753 _print("fatal: %s" % e, file=sys.stderr) 757 _print("fatal: %s" % e, file=sys.stderr)