diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:03:01 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:03:01 +0000 |
commit | 33ad521be0eb8a6fc1c64e2839a3d217d29ab8dc (patch) | |
tree | eb38db72cce3ae9bd550e8e347f9093c54857864 /bindings | |
parent | 8cff338971f7363c8b9b04c7c09f834f98df1f33 (diff) | |
download | lasso-33ad521be0eb8a6fc1c64e2839a3d217d29ab8dc.tar.gz lasso-33ad521be0eb8a6fc1c64e2839a3d217d29ab8dc.tar.xz lasso-33ad521be0eb8a6fc1c64e2839a3d217d29ab8dc.zip |
[project @ fpeters@0d.be-20071008135840-ujwuza0tqm6cwlzr]
added licence header, help text, command-line options and renamed script
Original author: Frederic Peters <fpeters@0d.be>
Date: 2007-10-08 15:58:40.683000+02:00
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/bindings.py (renamed from bindings/t.py) | 69 | ||||
-rw-r--r-- | bindings/lang_python.py | 24 |
2 files changed, 77 insertions, 16 deletions
diff --git a/bindings/t.py b/bindings/bindings.py index e8f1d558..dcfb718c 100644 --- a/bindings/t.py +++ b/bindings/bindings.py @@ -1,13 +1,34 @@ #! /usr/bin/env python +# +# Lasso - A free implementation of the Liberty Alliance specifications. +# +# Copyright (C) 2004-2007 Entr'ouvert +# http://lasso.entrouvert.org +# +# Authors: See AUTHORS file in top-level directory. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + import os import re import sys +from optparse import OptionParser import elementtree.ElementTree as ET -import lang_python - class BindingData: def __init__(self): self.headers = [] @@ -59,9 +80,9 @@ class BindingData: c.methods.append(f) self.functions.remove(f) - def look_for_docstrings(self): + def look_for_docstrings(self, srcdir): regex = re.compile(r'\/\*\*\s(.*?)\*\*\/', re.DOTALL) - for base, dirnames, filenames in os.walk('../lasso/'): + for base, dirnames, filenames in os.walk(srcdir): if base.endswith('/.svn'): # ignore svn directories continue @@ -255,8 +276,8 @@ def parse_header(header_file): i += 1 -def parse_headers(): - for base, dirnames, filenames in os.walk('../lasso/'): +def parse_headers(srcdir): + for base, dirnames, filenames in os.walk(srcdir): if base.endswith('/.svn'): # ignore svn directories continue @@ -273,15 +294,31 @@ def parse_headers(): binding.headers.insert(0, 'lasso/xml/saml-2.0/saml2_assertion.h') -binding = BindingData() -parse_headers() -binding.order_class_hierarchy() -binding.look_for_docstrings() -binding.attach_methods() +def main(): + global binding + + parser = OptionParser() + parser.add_option('-l', '--language', dest = 'language') + parser.add_option('-s', '--src-dir', dest = 'srcdir', default = '../lasso/') + + options, args = parser.parse_args() + if not options.language: + parser.print_help() + sys.exit(1) + + binding = BindingData() + parse_headers(options.srcdir) + binding.look_for_docstrings(options.srcdir) + binding.order_class_hierarchy() + binding.attach_methods() + + if options.language == 'python': + import lang_python + + python_binding = lang_python.PythonBinding(binding) + python_binding.generate() + -python_binding = lang_python.PythonBinding(binding) -python_binding.generate() +if __name__ == '__main__': + main() -import pprint -#binding.display_structs() -#binding.display_funcs() diff --git a/bindings/lang_python.py b/bindings/lang_python.py index 616d3491..e7234630 100644 --- a/bindings/lang_python.py +++ b/bindings/lang_python.py @@ -1,3 +1,25 @@ +# Lasso - A free implementation of the Liberty Alliance specifications. +# +# Copyright (C) 2004-2007 Entr'ouvert +# http://lasso.entrouvert.org +# +# Authors: See AUTHORS file in top-level directory. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os import sys import re import string @@ -32,6 +54,8 @@ class PythonBinding: 'int', 'gint', 'gboolean', 'const gboolean'] + self.binding_data.enums def generate(self): + if not os.path.exists('python'): + os.mkdir('python') fd = open('python/lasso.py', 'w') self.generate_header(fd) self.generate_exceptions(fd) |