diff options
Diffstat (limited to 'buildtools')
-rw-r--r-- | buildtools/graphviz-sql.sh | 41 | ||||
-rw-r--r-- | buildtools/make-relaxng.py | 54 | ||||
-rw-r--r-- | buildtools/make-sql-schemas.py | 52 | ||||
-rw-r--r-- | buildtools/pylint.rc | 201 |
4 files changed, 348 insertions, 0 deletions
diff --git a/buildtools/graphviz-sql.sh b/buildtools/graphviz-sql.sh new file mode 100644 index 00000000..21a81146 --- /dev/null +++ b/buildtools/graphviz-sql.sh @@ -0,0 +1,41 @@ +#!/bin/sh - +# $Id$ + +# Copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN") +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +# This uses the SQL::Translator package (aka "SQL Fairy") to parse +# a MYSQL schema and diagram the result using GraphViz. +# +# SQL::Translator appears to be pretty good at analyzing SQL, but is +# badly confused about how to format record labels in the "dot" +# language. I should send the author a patch, but simplest solution +# for now is just to whack sqlt-graph's broken output into shape. +# +# On FreeBSD, SQL Fairy is /usr/ports/databases/p5-SQL-Translator. + +sqlt-graph --db MySQL --output-type canon --show-datatypes --show-constraints $1 | +SOURCE="$1" perl -0777 -pe ' + s/\\\n//g; + s/ +/ /g; + s/\\\|/|/g; + s/\\{([a-z0-9_]+)\|/${1}|{/gi; + s/-\\ +//g; + s/\\ \\l/|/g; + s/\|\\l \\}/}/g; + s/\|\\}/}/g; + s/{\n/{\n\tedge [arrowtail=none, arrowhead=crow];\n/; + s/\[arrowhead=normal\]/[arrowtail=none, arrowhead=crow]/g; + s=^=// Automatically generated from $ENV{SOURCE}\n\n=; +' diff --git a/buildtools/make-relaxng.py b/buildtools/make-relaxng.py new file mode 100644 index 00000000..62decbae --- /dev/null +++ b/buildtools/make-relaxng.py @@ -0,0 +1,54 @@ +""" +Script to generate rpki/relaxng.py. + +$Id$ + +Copyright (C) 2009 Internet Systems Consortium ("ISC") + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Portions copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN") + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +""" + +schemas = ("left_right", "up_down", "publication") + +format_1 = """\ +# Automatically generated, do not edit. + +import lxml.etree +""" + +format_2 = """\ +## @var %(name)s +## Parsed RelaxNG %(name)s schema +%(name)s = lxml.etree.RelaxNG(lxml.etree.fromstring('''%(rng)s''')) +""" + +print format_1 + +for name in schemas: + print format_2 % { + "name" : name, + "rng" : open(name.replace("_", "-") + "-schema.rng").read() } diff --git a/buildtools/make-sql-schemas.py b/buildtools/make-sql-schemas.py new file mode 100644 index 00000000..700d2b9c --- /dev/null +++ b/buildtools/make-sql-schemas.py @@ -0,0 +1,52 @@ +""" +Script to generate rpki/relaxng.py. + +$Id$ + +Copyright (C) 2009-2011 Internet Systems Consortium ("ISC") + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Portions copyright (C) 2007--2008 American Registry for Internet Numbers ("ARIN") + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND ARIN DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL ARIN BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +""" + +schemas = ("rpkid", "irdbd", "pubd") + +format_1 = """\ +# Automatically generated, do not edit. +""" + +format_2 = """\ +## @var %(name)s +## SQL schema %(name)s +%(name)s = '''%(sql)s''' +""" + +print format_1 + +for name in schemas: + print format_2 % { + "name" : name, + "sql" : open(name + ".sql").read() } diff --git a/buildtools/pylint.rc b/buildtools/pylint.rc new file mode 100644 index 00000000..5e555f45 --- /dev/null +++ b/buildtools/pylint.rc @@ -0,0 +1,201 @@ +# $Id$ +# +# Preliminary experiment with pylint. Its default coding style +# differs enough from mine that it's not really usable without +# customization. Useful options: --help, --generate-rcfile. + +[MASTER] + +profile=no +ignore=.svn +persistent=yes +cache-size=500 +load-plugins= + +[MESSAGES CONTROL] + +# Enable only checker(s) with the given id(s). This option conflicts with the +# disable-checker option +#enable-checker= + +# Enable all checker(s) except those with the given id(s). This option +# conflicts with the enable-checker option +#disable-checker= + +# Enable all messages in the listed categories (IRCWEF). +#enable-msg-cat= + +# Disable all messages in the listed categories (IRCWEF). +disable-msg-cat= + +# Enable the message(s) with the given id(s). +#enable-msg= + +# Disable the message(s) with the given id(s). +disable-msg=R0801,R0903,R0913,C0321,R0904,W0201,E1101,W0614,C0301,R0901,C0302,R0902,R0201,W0613,R0912,R0915,W0703,W0212,R0914,W0603 + +[REPORTS] + +output-format=parseable +include-ids=yes +files-output=no +reports=no +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) +comment=no + +[VARIABLES] + +# Tells wether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching names used for dummy variables (i.e. not used). +dummy-variables-rgx=ignored + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +[TYPECHECK] + +# Tells wether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=no + +# List of classes names for which member attributes should not be checked +# (useful for classes with attributes dynamicaly set). +ignored-classes=SQLObject + +# When zope mode is activated, add a predefined set of Zope acquired attributes +# to generated-members. +zope=no + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E0201 when accessed. +generated-members= + +[BASIC] + +# Required attributes for module, separated by a comma +required-attributes= + +# Regular expression which should only match functions or classes name which do +# not require a docstring +no-docstring-rgx=__.*__|usage + +# Regular expression which should only match correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression which should only match correct module level names +const-rgx=(([a-zA-Z_][a-zA-Z0-9_]*)|(__.*__))$ + +# Regular expression which should only match correct class names +class-rgx=[a-zA-Z_][a-zA-Z0-9_]+$ + +# Regular expression which should only match correct function names +function-rgx=[a-zA-Z_][a-zA-Z0-9_]+$ + +# Regular expression which should only match correct method names +method-rgx=[a-zA-Z_][a-zA-Z0-9_]+$ + +# Regular expression which should only match correct instance attribute names +attr-rgx=[a-zA-Z_][a-zA-Z0-9_]*$ + +# Regular expression which should only match correct argument names +argument-rgx=[a-zA-Z_][a-zA-Z0-9_]*$ + +# Regular expression which should only match correct variable names +variable-rgx=[a-zA-Z_][a-zA-Z0-9_]*$ + +# Regular expression which should only match correct list comprehension / +# generator expression variable names +inlinevar-rgx=[a-zA-Z_][a-zA-Z0-9_]*$ + +# Good variable names which should always be accepted, separated by a comma +good-names= + +# Bad variable names which should always be refused, separated by a comma +bad-names= + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,filter,apply,input + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=regsub,string,TERMIOS,Bastion,rexec + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report R0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report R0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report R0402 must +# not be disabled) +int-import-graph= + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branchs=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +[CLASSES] + +# List of interface methods to ignore, separated by a comma. +ignore-iface-methods= + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=80 + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. +indent-string=' ' + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO |