#!/usr/bin/env python3"""Wrapper script for pydbkit tools.Usage----- pgtool --list List all available tools. pgtool <tool_name> <arg_1> <arg_2> ... Run tool. All args except first one are forwarded to the tool. pgtool schemadiff db1 db2 E.g. run schemadiff between db1 and db2. pgtool schemadiff --help Get help for tool parameters.Configuration-------------Global pydbkit configuration: /etc/pydbkit.confLocal configuration: ./pydbkit.confAdditional config file can be loaded using -c parameter (after tool name).Configuration from all present files is loaded in above order,later value overrides previous value. Resulting config file priority is: 1) parameter 2) local 3) global"""import pydbkit.toolsimport sysfrom importlib import import_moduledef print_tool_with_short_desc(name): module = import_module('pydbkit.tools.' + tool) short_desc = module.cls.__doc__.lstrip().splitlines()[0] print(name.ljust(15), '-', short_desc)if __name__ == '__main__': if len(sys.argv) < 2: print(__doc__, end='') sys.exit() if sys.argv[1].startswith('--'): if sys.argv[1] == '--list': for tool in pydbkit.tools.__all__: print_tool_with_short_desc(tool) else: print(__doc__, end='') sys.exit() tool = sys.argv[1] tool_args = sys.argv[2:] if tool not in pydbkit.tools.__all__: print('Unknown tool "%s".\n\nCall "pgtool --list" to get list of all available tools.' % tool) sys.exit() module = import_module('pydbkit.tools.' + tool) tool = module.cls() tool.setup(tool_args) tool.main()