---
support/build.py | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 0 deletions(-)
create mode 100755 support/build.py
diff --git a/support/build.py b/support/build.py
new file mode 100755
index 0000000..60b2f99
--- /dev/null
+++ b/support/build.py
@@ -0,0 +1,93 @@
+ #! /bin/python
+"""Support for building sinan, bootstraping it on a new version of erlang"""
+
+
+import sys
+import os
+import commands
+from optparse import OptionParser
+
+class BuildError(Exception):
+ def __init__(self, value):
+ self.value = value
+ def __str__(self):
+ return repr(self.value)
+
+ERTS_VERSION = "5.6.3"
+
+BUILD_PATH = "_build/development/apps/%s/ebin"
+
+ERLWARE_PATH = "/usr/local/erlware"
+
+ERLC = "erlc +debug_info "
+
+LOCAL_APPS = [("etask", "0.5.0"),
+ ("sinan", "0.10.0.14"),
+ ("sinan_web_api", "0.1.0.4")]
+
+ERLWARE_APPS = ["fconf-0.3.0.0",
+ "ktuo-0.4.0.1",
+ "crary-0.2.3",
+ "eunit-2.0",
+ "cryptographic-0.2.1",
+ "ewlib-0.8.2.0",
+ "ewrepo-0.18.6.0",
+ "gas-6.1.1",
+ "kernel-2.12.3",
+ "ibrowse-1.4",
+ "uri-0.2.0"]
+
+
+def generate_local_path(app):
+ ebin = "_build/development/apps/%s-%s/ebin" % (app[0], app[1])
+ include = "_build/development/apps/%s-%s/include" % (app[0], app[1])
+
+ if not os.path.isdir(ebin):
+ raise BuildError(ebin + " is not a directory")
+
+ return " -pa %s -I %s " % (ebin, include)
+
+def generate_erlware_path(path):
+ ebin = "%s/packages/%s/lib/%s/ebin" % (ERLWARE_PATH, ERTS_VERSION, path)
+ include = "%s/packages/%s/lib/%s/include" % (ERLWARE_PATH, ERTS_VERSION,
path)
+
+ if not os.path.isdir(ebin):
+ raise BuildError(ebin + " is not a directory")
+
+
+ return " -pa %s -I %s " % (ebin, include)
+
+def compile_app(app):
+ ebin = "_build/development/apps/%s-%s/ebin" % (app[0], app[1])
+ compile_command = ("erlc +debug_info %s %s -o %s/ ./server/%s/src/*.erl" %
+ (' '.join(map(generate_local_path, LOCAL_APPS)),
+ ' '.join(map(generate_erlware_path, ERLWARE_APPS)),
+ ebin,
+ app[0]))
+
+ (status, out) = commands.getstatusoutput(compile_command)
+
+ if 0 != status:
+ raise BuildError(out)
+
+
+def compile_apps():
+ for app in LOCAL_APPS:
+ compile_app(app)
+
+def main():
+ parser = OptionParser()
+ parser.add_option("-e", "--erlware",
+ dest="erlware",
+ type="string",
+ default="/usr/local/erlware",
+ help="The location of Erlware")
+
+ (options, args) = parser.parse_args()
+
+ ERLWARE_PATH = options.erlware
+
+ compile_apps()
+
+if __name__ == "__main__":
+ main()
--
1.5.6.4
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"erlware-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/erlware-dev?hl=en
-~----------~----~----~----~------~----~------~--~---