diff options
Diffstat (limited to 'subcmds/init.py')
| -rw-r--r-- | subcmds/init.py | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/subcmds/init.py b/subcmds/init.py index 11312601..a44fb7a9 100644 --- a/subcmds/init.py +++ b/subcmds/init.py | |||
| @@ -20,6 +20,15 @@ import re | |||
| 20 | import shutil | 20 | import shutil |
| 21 | import sys | 21 | import sys |
| 22 | 22 | ||
| 23 | from pyversion import is_python3 | ||
| 24 | if is_python3(): | ||
| 25 | import urllib.parse | ||
| 26 | else: | ||
| 27 | import imp | ||
| 28 | import urlparse | ||
| 29 | urllib = imp.new_module('urllib') | ||
| 30 | urllib.parse = urlparse.urlparse | ||
| 31 | |||
| 23 | from color import Coloring | 32 | from color import Coloring |
| 24 | from command import InteractiveCommand, MirrorSafeCommand | 33 | from command import InteractiveCommand, MirrorSafeCommand |
| 25 | from error import ManifestParseError | 34 | from error import ManifestParseError |
| @@ -91,8 +100,9 @@ to update the working directory files. | |||
| 91 | dest='depth', | 100 | dest='depth', |
| 92 | help='create a shallow clone with given depth; see git clone') | 101 | help='create a shallow clone with given depth; see git clone') |
| 93 | g.add_option('-g', '--groups', | 102 | g.add_option('-g', '--groups', |
| 94 | dest='groups', default='all,-notdefault', | 103 | dest='groups', default='default', |
| 95 | help='restrict manifest projects to ones with a specified group', | 104 | help='restrict manifest projects to ones with specified ' |
| 105 | 'group(s) [default|all|G1,G2,G3|G4,-G5,-G6]', | ||
| 96 | metavar='GROUP') | 106 | metavar='GROUP') |
| 97 | g.add_option('-p', '--platform', | 107 | g.add_option('-p', '--platform', |
| 98 | dest='platform', default='auto', | 108 | dest='platform', default='auto', |
| @@ -134,7 +144,19 @@ to update the working directory files. | |||
| 134 | if not opt.quiet: | 144 | if not opt.quiet: |
| 135 | print('Get %s' % GitConfig.ForUser().UrlInsteadOf(opt.manifest_url), | 145 | print('Get %s' % GitConfig.ForUser().UrlInsteadOf(opt.manifest_url), |
| 136 | file=sys.stderr) | 146 | file=sys.stderr) |
| 137 | m._InitGitDir() | 147 | |
| 148 | # The manifest project object doesn't keep track of the path on the | ||
| 149 | # server where this git is located, so let's save that here. | ||
| 150 | mirrored_manifest_git = None | ||
| 151 | if opt.reference: | ||
| 152 | manifest_git_path = urllib.parse(opt.manifest_url).path[1:] | ||
| 153 | mirrored_manifest_git = os.path.join(opt.reference, manifest_git_path) | ||
| 154 | if not mirrored_manifest_git.endswith(".git"): | ||
| 155 | mirrored_manifest_git += ".git" | ||
| 156 | if not os.path.exists(mirrored_manifest_git): | ||
| 157 | mirrored_manifest_git = os.path.join(opt.reference + '/.repo/manifests.git') | ||
| 158 | |||
| 159 | m._InitGitDir(mirror_git=mirrored_manifest_git) | ||
| 138 | 160 | ||
| 139 | if opt.manifest_branch: | 161 | if opt.manifest_branch: |
| 140 | m.revisionExpr = opt.manifest_branch | 162 | m.revisionExpr = opt.manifest_branch |
| @@ -169,7 +191,7 @@ to update the working directory files. | |||
| 169 | 191 | ||
| 170 | groups = [x for x in groups if x] | 192 | groups = [x for x in groups if x] |
| 171 | groupstr = ','.join(groups) | 193 | groupstr = ','.join(groups) |
| 172 | if opt.platform == 'auto' and groupstr == 'all,-notdefault,platform-' + platform.system().lower(): | 194 | if opt.platform == 'auto' and groupstr == 'default,platform-' + platform.system().lower(): |
| 173 | groupstr = None | 195 | groupstr = None |
| 174 | m.config.SetString('manifest.groups', groupstr) | 196 | m.config.SetString('manifest.groups', groupstr) |
| 175 | 197 | ||
