From: Ben Pfaff <[email protected]> When ovsdb-dot generates diagrams for use in the manpages, the dot2pic postprocessor makes nicer output if the arrowheads are omitted (dot2pic adds the arrowheads itself). But for other uses that don't go through the postprocessor, we generally want the arrowheads. So this commit adds an option. On the principle that the default should be the least surprising to a naive user, arrowheads are included by default.
Signed-off-by: Ben Pfaff <[email protected]> Signed-off-by: Justin Pettit <[email protected]> --- ovsdb/ovsdb-dot.in | 16 +++++++++++----- vswitchd/automake.mk | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ovsdb/ovsdb-dot.in b/ovsdb/ovsdb-dot.in index 85c126d..459e7b9 100755 --- a/ovsdb/ovsdb-dot.in +++ b/ovsdb/ovsdb-dot.in @@ -37,14 +37,15 @@ def printEdge(tableName, type, baseType, label): baseType.ref_table_name, ', '.join(['%s=%s' % (k,v) for k,v in options.items()])) -def schemaToDot(schemaFile): +def schemaToDot(schemaFile, arrows): schema = ovs.db.schema.DbSchema.from_json(ovs.json.from_file(schemaFile)) print "digraph %s {" % schema.name print '\tsize="6.5,4";' print '\tmargin="0";' print "\tnode [shape=box];" - print "\tedge [dir=none, arrowhead=none, arrowtail=none];" + if not arrows: + print "\tedge [dir=none, arrowhead=none, arrowtail=none];" for tableName, table in schema.tables.iteritems(): options = {} if table.is_root: @@ -68,6 +69,7 @@ usage: %(argv0)s [OPTIONS] SCHEMA where SCHEMA is an OVSDB schema in JSON format The following options are also available: + --no-arrows omit arrows from diagram -h, --help display this help message -V, --version display version information\ """ % {'argv0': argv0} @@ -77,13 +79,17 @@ if __name__ == "__main__": try: try: options, args = getopt.gnu_getopt(sys.argv[1:], 'hV', - ['help', 'version']) + ['no-arrows', + 'help', 'version',]) except getopt.GetoptError, geo: sys.stderr.write("%s: %s\n" % (argv0, geo.msg)) sys.exit(1) + arrows = True for key, value in options: - if key in ['-h', '--help']: + if key == '--no-arrows': + arrows = False + elif key in ['-h', '--help']: usage() elif key in ['-V', '--version']: print "ovsdb-dot (Open vSwitch) @VERSION@" @@ -95,7 +101,7 @@ if __name__ == "__main__": "(use --help for help)\n" % argv0) sys.exit(1) - schemaToDot(args[0]) + schemaToDot(args[0], arrows) except ovs.db.error.Error, e: sys.stderr.write("%s: %s\n" % (argv0, e.msg)) diff --git a/vswitchd/automake.mk b/vswitchd/automake.mk index 3a271c6..d3f9093 100644 --- a/vswitchd/automake.mk +++ b/vswitchd/automake.mk @@ -34,7 +34,7 @@ pkgdata_DATA += vswitchd/vswitch.ovsschema # if vswitch.gv actually changes. $(srcdir)/vswitchd/vswitch.gv: ovsdb/ovsdb-dot.in vswitchd/vswitch.ovsschema if HAVE_PYTHON - $(OVSDB_DOT) $(srcdir)/vswitchd/vswitch.ovsschema > $@ + $(OVSDB_DOT) --no-arrows $(srcdir)/vswitchd/vswitch.ovsschema > $@ else touch $@ endif -- 1.7.5.4 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
