summaryrefslogtreecommitdiff
path: root/lib/thandy/ConfigCLI.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/thandy/ConfigCLI.py')
-rw-r--r--lib/thandy/ConfigCLI.py118
1 files changed, 118 insertions, 0 deletions
diff --git a/lib/thandy/ConfigCLI.py b/lib/thandy/ConfigCLI.py
new file mode 100644
index 0000000..a89039e
--- /dev/null
+++ b/lib/thandy/ConfigCLI.py
@@ -0,0 +1,118 @@
+from string import Template
+import sys
+import getopt
+
+package_template = Template("""name = "$app_name"
+version = [$version_list]
+location = "$location"
+relpath = "$data"
+ShortDesc('en', "$short_desc")
+LongDesc('en',
+\"\"\"$long_desc\"\"\")
+format = "$format"
+thp_name = "$app_name"
+thp_version = "$version"
+thp_dest = "$dest" """)
+
+bundle_template = Template("""name = "$bundle_name"
+version = [$version_list]
+location = "$bundle_location"
+os = "$os"
+arch = "$arch"
+$packages
+ShortGloss("en", "$short_gloss")
+LongGloss("en", "$long_gloss") """)
+
+package_list_template = Template("""Package(name="$app_name",
+ order=(10,10,10),
+ optional=False)""")
+
+def packageconfig(args):
+ optlist, args = getopt.getopt(args, '', ["app_name=",
+ "version_list=",
+ "location=",
+ "short_desc=",
+ "long_desc=",
+ "dest="])
+
+ mapping = {}
+ for key, val in optlist:
+ mapping[key[2:]] = val
+
+ mapping["version"] = ".".join(mapping["version_list"].split(","))
+ mapping["data"] = "/data/%s-%s.thp" % (mapping["app_name"],
+ mapping["version"])
+ mapping["format"] = "thp"
+
+ out = open("%s-%s_package.cfg" % (mapping["app_name"], mapping["version"]), "w")
+ try:
+ out.write(package_template.substitute(mapping))
+ except KeyError, e:
+ print "You are missing the following parameter:", e
+ sys.exit(1)
+
+ out.close()
+
+def bundleconfig(args):
+ optlist, args = getopt.getopt(args, '', ["bundle_name=",
+ "version_list=",
+ "bundle_location=",
+ "os=",
+ "arch=",
+ "pkg_names=",
+ "short_gloss=",
+ "long_gloss="])
+
+ mapping = {}
+ pkg_names = []
+ for key, val in optlist:
+ if key == "--pkg_names":
+ pkg_names = val.split(",")
+ continue
+ mapping[key[2:]] = val
+
+ packages = ""
+ for pkg in pkg_names:
+ packages += "%s\n" % package_list_template.substitute({'app_name': pkg})
+
+ mapping["packages"] = packages
+
+ out = open("%s-%s_bundle.cfg" % (mapping["bundle_name"], ".".join(mapping["version_list"].split(","))), "w")
+ try:
+ out.write(bundle_template.substitute(mapping))
+ except KeyError, e:
+ print "You are missing the following parameter:", e
+ sys.exit(1)
+
+ out.close()
+
+def usage():
+ print "Known commands:"
+ print " packageconfig --app_name=AppName"
+ print " --version_list=1,2,3"
+ print " --location=/path/to/package.txt"
+ print " --short_desc=\"Short description\""
+ print " --long_desc=\"Long description\""
+ print " --dest=\"/relative/path/to/install/\""
+ print " bundleconfig --bundle_name=BundleName"
+ print " --version_list=1,2,3"
+ print " --bundle_location=/path/to/bundle.txt"
+ print " --os=lin"
+ print " --arch=x86"
+ print " --pkg_names=\"package1,package2\""
+ print " --short_gloss=\"This is the short gloss\""
+ print " --long_gloss=\"This is the large glossary\""
+ sys.exit(1)
+
+def main():
+ if len(sys.argv) < 2:
+ usage()
+ cmd = sys.argv[1]
+ args = sys.argv[2:]
+ if cmd in [ "packageconfig", "bundleconfig" ]:
+ globals()[cmd](args)
+ else:
+ usage()
+
+if __name__ == '__main__':
+ main()