From eb3b5c56561a5e56e8a3fd7c58fb50f1d94811dc Mon Sep 17 00:00:00 2001 From: Craig Tracey Date: Thu, 20 Nov 2014 16:24:10 -0500 Subject: [PATCH] Allow specification of build type from the CLI There may be times when you want ot override the build type specified in the manifest. This flag allows you to do do. --- giftwrap/build_spec.py | 8 ++++++-- giftwrap/shell.py | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/giftwrap/build_spec.py b/giftwrap/build_spec.py index 9438fac..1aa40ce 100644 --- a/giftwrap/build_spec.py +++ b/giftwrap/build_spec.py @@ -22,10 +22,14 @@ from giftwrap.settings import Settings class BuildSpec(object): - def __init__(self, manifest, version): + def __init__(self, manifest, version, build_type=None): self._manifest = yaml.load(manifest) self.version = version - self.settings = Settings.factory(self._manifest['settings']) + self.build_type = build_type + manifest_settings = self._manifest['settings'] + if build_type: + manifest_settings['build_type'] = build_type + self.settings = Settings.factory(manifest_settings) self.projects = self._render_projects() def _render_projects(self): diff --git a/giftwrap/shell.py b/giftwrap/shell.py index 1b711ed..761604e 100644 --- a/giftwrap/shell.py +++ b/giftwrap/shell.py @@ -44,7 +44,7 @@ def build(args): with open(args.manifest, 'r') as fh: manifest = fh.read() - buildspec = BuildSpec(manifest, args.version) + buildspec = BuildSpec(manifest, args.version, args.type) builder = giftwrap.builder.create_builder(buildspec) builder.build() except Exception as e: @@ -65,6 +65,7 @@ def main(): description='build giftwrap packages') build_subcmd.add_argument('-m', '--manifest', required=True) build_subcmd.add_argument('-v', '--version') + build_subcmd.add_argument('-t', '--type', choices=('docker', 'package')) build_subcmd.set_defaults(func=build) args = parser.parse_args()