From d21720db313369f25b99b4d2f3f87c8be46513d9 Mon Sep 17 00:00:00 2001 From: Conley Owens Date: Mon, 16 Apr 2012 11:02:21 -0700 Subject: Add a --platform flag Projects may optionally specify their platform (eg, groups="platform-linux" in the manifest). By default, repo will automatically detect the platform. However, users may specify --platform=[auto|all|linux|darwin]. Change-Id: Ie678851fb2fec5b0938aede01f16c53138a16537 --- subcmds/init.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'subcmds/init.py') diff --git a/subcmds/init.py b/subcmds/init.py index d1c497c1..2e3215b2 100644 --- a/subcmds/init.py +++ b/subcmds/init.py @@ -14,6 +14,7 @@ # limitations under the License. import os +import platform import re import shutil import sys @@ -91,6 +92,11 @@ to update the working directory files. dest='groups', default='default', help='restrict manifest projects to ones with a specified group', metavar='GROUP') + g.add_option('-p', '--platform', + dest='platform', default='auto', + help='restrict manifest projects to ones with a specified' + 'platform group [auto|all|none|linux|darwin|...]', + metavar='PLATFORM') # Tool g = p.add_option_group('repo Version options') @@ -141,9 +147,24 @@ to update the working directory files. r.Save() groups = re.split('[,\s]+', opt.groups) + all_platforms = ['linux', 'darwin'] + platformize = lambda x: 'platform-' + x + if opt.platform == 'auto': + if (not opt.mirror and + not m.config.GetString('repo.mirror') == 'true'): + groups.append(platformize(platform.system().lower())) + elif opt.platform == 'all': + groups.extend(map(platformize, all_platfroms)) + elif opt.platform in all_platforms: + groups.extend(platformize(opt.platform)) + elif opt.platform != 'none': + print >>sys.stderr, 'fatal: invalid platform flag' + sys.exit(1) + groups = [x for x in groups if x] groupstr = ','.join(groups) - if groupstr == 'default': + if opt.platform == 'auto' and + groupstr == 'default,platform-' + platform.system.lower(): groupstr = None m.config.SetString('manifest.groups', groupstr) -- cgit v1.2.3-54-g00ecf