summaryrefslogtreecommitdiff
path: root/tools/g-ir-tool-template.in
diff options
context:
space:
mode:
authorDieter Verfaillie <dieterv@optionexplicit.be>2015-04-21 07:20:43 +0200
committerDieter Verfaillie <dieterv@optionexplicit.be>2015-06-29 16:54:29 +0200
commit7e0014607513fc335f96baf9408cdeb6d29c1375 (patch)
treed1daed29b458d90136658dbce8e55e6cab3e4220 /tools/g-ir-tool-template.in
parentaf97f472b16ceef6c33b8fd6b9f36eef0e60c7cb (diff)
downloadgobject-introspection-7e0014607513fc335f96baf9408cdeb6d29c1375.tar.gz
tools: use a template to generate the tools scripts
g-ir-annotation-tool, g-ir-doc-tool and g-ir-scanner where identical except for the module and function being invoked. Avoid code duplication and generate these from a common template.
Diffstat (limited to 'tools/g-ir-tool-template.in')
-rw-r--r--tools/g-ir-tool-template.in58
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in
new file mode 100644
index 00000000..43eea46e
--- /dev/null
+++ b/tools/g-ir-tool-template.in
@@ -0,0 +1,58 @@
+#!/usr/bin/env @PYTHON@
+# -*- Mode: Python -*-
+# GObject-Introspection - a framework for introspecting GObject libraries
+# Copyright (C) 2008 Johan Dahlin
+#
+# 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., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+
+import os
+import sys
+import __builtin__
+
+
+debug = os.getenv('GI_SCANNER_DEBUG', '').split(',')
+if debug:
+ if 'pydevd' in debug:
+ # http://pydev.org/manual_adv_remote_debugger.html
+ pydevdpath = os.getenv('PYDEVDPATH', None)
+ if pydevdpath is not None and os.path.isdir(pydevdpath):
+ sys.path.insert(0, pydevdpath)
+ import pydevd
+ pydevd.settrace()
+ else:
+ def on_exception(exctype, value, tb):
+ print "Caught exception: %r %r" % (exctype, value)
+ import pdb
+ pdb.pm()
+ sys.excepthook = on_exception
+
+if os.name == 'nt':
+ datadir = os.path.join(os.path.dirname(__file__), '..', 'share')
+ pylibdir = os.path.join(os.path.dirname(__file__), '..', 'lib', 'gobject-introspection')
+else:
+ datadir = "@datarootdir@"
+ pylibdir = os.path.join('@libdir@', 'gobject-introspection')
+
+srcdir = os.getenv('UNINSTALLED_INTROSPECTION_SRCDIR', None)
+if srcdir is not None:
+ pylibdir = srcdir
+
+__builtin__.__dict__['DATADIR'] = datadir
+sys.path.insert(0, pylibdir)
+
+from giscanner.@TOOL_MODULE@ import @TOOL_FUNCTION@
+sys.exit(@TOOL_FUNCTION@(sys.argv))