| #!/usr/bin/env python |
| |
| # ==================================================================== |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # ==================================================================== |
| |
| args_message = '[-f png|svg|gif|dia... [-f ...]] GRAPH_CONFIG_FILE...' |
| help_message = """Produce pretty graphs representing branches and merging. |
| For each config file specified, construct a graph and write it as a PNG file |
| (or other graphical file formats).""" |
| |
| import sys |
| import getopt |
| from mergegraph import MergeDot |
| |
| |
| # If run as a program, process each input filename as a graph config file. |
| if __name__ == '__main__': |
| optlist, args = getopt.getopt(sys.argv[1:], 'f:', ['format']) |
| |
| prog_name = sys.argv[0] |
| if not args: |
| usage = '%s: usage: "%s %s"\n' % (prog_name, prog_name, args_message) |
| sys.stderr.write(usage) |
| sys.exit(1) |
| |
| formats = [] |
| |
| for opt, opt_arg in optlist: |
| if opt == '-f': |
| formats.append(opt_arg) |
| |
| if not formats: |
| formats.append('png') |
| |
| for config_filename in args: |
| sys.stdout.write("%s: reading '%s', " % (prog_name, config_filename)) |
| graph = MergeDot(config_filename, rankdir='LR', dpi='72') |
| for format in formats: |
| filename = '%s.%s' % (graph.basename, format) |
| sys.stdout.write("writing '%s' " % filename) |
| graph.save(format=format, filename=filename) |
| print |