Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 81965 invoked from network); 7 Nov 2010 09:36:27 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 7 Nov 2010 09:36:27 -0000 Received: (qmail 53992 invoked by uid 500); 7 Nov 2010 09:36:58 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 53834 invoked by uid 500); 7 Nov 2010 09:36:56 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 53827 invoked by uid 99); 7 Nov 2010 09:36:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 07 Nov 2010 09:36:56 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 07 Nov 2010 09:36:54 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 808B0238896F; Sun, 7 Nov 2010 09:35:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1032238 - /commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py Date: Sun, 07 Nov 2010 09:35:39 -0000 To: commits@commons.apache.org From: jbeard@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101107093539.808B0238896F@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jbeard Date: Sun Nov 7 09:35:39 2010 New Revision: 1032238 URL: http://svn.apache.org/viewvc?rev=1032238&view=rev Log: Added command-line option parsing. Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py?rev=1032238&r1=1032237&r2=1032238&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py (original) +++ commons/sandbox/gsoc/2010/scxml-js/trunk/src/python/scxml/cgf/SCXMLCompiler.py Sun Nov 7 09:35:39 2010 @@ -1,5 +1,6 @@ import sys import pkg_resources +import getopt from lxml import etree def compile(pathsToSCXML=[],backend="state",options={}): @@ -20,17 +21,23 @@ def compile(pathsToSCXML=[],backend="sta for doc in sourceDocuments: ir = transformDocument(doc,config["transformations"]) - transformedJs = transformDocument(sourceDocument,[config["code"]],options,"text") + transformedJs = transformDocument(ir,[config["code"]],options,"text") results.push(transformedJs) + #TODO: optionally beautify result here + return results def transformDocument(sourceDocument=None,transformList=[],params={},output="xml"): templateStreams = map(lambda t : pkg_resources.resource_stream(__name__,t), transformList) + print templateStreams templateDocs = map(lambda t : etree.parse(t), templateStreams) - compiledTemplates = map(lambda t : etree.XSLT(t), transformList) + print templateDocs + compiledTemplates = map(lambda t : etree.XSLT(t), templateDocs) + print compiledTemplates + #TODO: apply args to the transform outputDocument = reduce(lambda docToTransform,transform: transform(docToTransform), compiledTemplates, sourceDocument) if output == "xml": @@ -39,5 +46,29 @@ def transformDocument(sourceDocument=Non #assume "text" return outputDocument.root.getText() +def usage(): + print "Couldn't parse command-line args. TODO: print helpful usage text." + +def optlistToDict(optlist): + toReturn = {} + + for opt,arg in optlist: + toReturn[opt]=arg + + return toReturn + +def main(argv): + #parse command-line args + optlist, args = getopt.getopt(argv, '', ["backend=", "ie","noIndexOf","beautify","log","verbose","genListenerHooks"]) + print "opts: ", optlist + print "args: ", args + opts = optlistToDict(optlist) + results = compile(args,opts["--backend"],opts) + + for result in results: + print result + + + if __name__ == "__main__": - pass #TODO: parse command-line args + main(sys.argv[1:])