summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-10-01 17:25:14 +0100
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-10-01 17:25:14 +0100
commitf6053fd4800c4607c6f09283431264f796d6cde1 (patch)
treeb130d1bf4f24ced88cf8c6540beebf9c479c699b
parent5e700000d575aa69b08050aa39f19873fdf0a08f (diff)
downloadmorph-f6053fd4800c4607c6f09283431264f796d6cde1.tar.gz
import: Work on omnibus.to_lorry
-rwxr-xr-ximport/omnibus.to_lorry28
1 files changed, 26 insertions, 2 deletions
diff --git a/import/omnibus.to_lorry b/import/omnibus.to_lorry
index 07b66f5e..df579b9f 100755
--- a/import/omnibus.to_lorry
+++ b/import/omnibus.to_lorry
@@ -30,7 +30,29 @@ TARGET_PROJECT = 'chefdk' # should come from args
TARGET_SOFTWARE = 'chefdk' # should come from args
+# This DEFINITIONS#PROJECT thing is a bit shit. Make main.py smarter.
+BANNER = "Usage: omnibus.to_lorry DEFINITIONS_DIR#PROJECT_NAME SOFTWARE_NAME"
+
+DESCRIPTION = <<-END
+Generate a .lorry file for a given Omnibus software component.
+END
+
class OmnibusLorryGenerator < Importer::Base
+ def parse_options(arguments)
+ opts = create_option_parser(BANNER, DESCRIPTION)
+
+ parsed_arguments = opts.parse!(arguments)
+
+ if parsed_arguments.length != 2
+ opts.parse(['-?'])
+ exit 1
+ end
+
+ definitions_and_project, software_name = parsed_arguments
+ definitions_dir, _, project_name = definitions_and_project.rpartition('#')
+ [definitions_dir, project_name, software_name]
+ end
+
def generate_lorry_for_software(software)
lorry_body = {
'x-products-omnibus' => [software.name]
@@ -54,9 +76,11 @@ class OmnibusLorryGenerator < Importer::Base
end
def run
- project = Omnibus::Project.load(TARGET_PROJECT)
+ definitions_dir, project_name, software_name = parse_options(ARGV)
+
+ project = Omnibus::Project.load(project_name)
- software = Omnibus::Software.load(project, TARGET_SOFTWARE)
+ software = Omnibus::Software.load(project, software_name)
lorry = generate_lorry_for_software(software)