#!/usr/bin/python3
-from optparse import OptionParser
+from argparse import ArgumentParser
import os
import json
import sys
"JSON",
"HTML",
]
- parser = OptionParser(usage="usage: %prog [options] files...")
- parser.description = "Generate a table of the Graphviz compile " \
- "configuration for different platforms from files generated by the " \
- "./configure command."
- parser.add_option("-c", "--color", action="store_const",
- dest="colors", const = "green:red", default=None,
- help="Color output using default coloring. Yes is colored \
- green and No is colored red")
- parser.add_option("--colors", action="store",
- dest="colors", default=None,
- help="Color output using specifed COLORS. The format is <Yes-color>:<No-color>")
- parser.add_option("-s", "--short", action="store_true",
- dest="short", default=False,
- help="Output only Yes or No")
- parser.add_option("--output-format", action="store",
- dest="output_format", default="JSON",
- help="Set output format. Supported formats are " +
- " and ".join(supported_output_formats))
+ parser = ArgumentParser(description="Generate a table of the Graphviz compile "
+ "configuration for different platforms from files "
+ "generated by the ./configure command.")
+ parser.add_argument("--color", "-c", action="store_const",
+ dest="colors", const="green:red",
+ help="Color output using default coloring. Yes is "
+ "colored green and No is colored red")
+ parser.add_argument("--colors",
+ help="Color output using specified COLORS. The format is "
+ "<Yes-color>:<No-color>")
+ parser.add_argument("--short", "-s", action="store_true",
+ help="Output only Yes or No")
+ parser.add_argument("--output-format", default="JSON",
+ choices=supported_output_formats,
+ help="Set output format.")
+ parser.add_argument("filename", nargs='*', help="Configuration log to read")
- (opts, args) = parser.parse_args()
-
- if opts.output_format.upper() not in supported_output_formats:
- sys.stderr.write(f"Error: {opts.output_format} output format is not supported\n")
- parser.print_help(file=sys.stderr)
- sys.exit(1)
+ opts = parser.parse_args()
if opts.colors is None:
styles = {
component_names = {}
platforms = []
- for filename in args:
+ for filename in opts.filename:
os_path = os.path.dirname(filename)
os_version_id = os.path.basename(os_path)
os_id = os.path.basename(os.path.dirname(os_path))
component_names[section_name].append(component_name)
table[section_name][component_name][platform] = component_value
- if opts.output_format.upper() == "JSON":
+ if opts.output_format == "JSON":
print(json.dumps(table, indent=4))
- elif opts.output_format.upper() == "HTML":
+ elif opts.output_format == "HTML":
colspan = len(platforms) + 1
indent = ""
print(f"{indent}<!DOCTYPE html>")