def main(argv=sys.argv): cli = InitialiseDbCli() # Main parser parser = argparse.ArgumentParser(description="""InitialiseDb command-line interface.""", ) parser.add_argument('-c', '--config', required=True, help="""Path to INI file with configuration, e.g. 'production.ini'""") parser.add_argument('-l', '--locale', help="""Set the desired locale. If omitted and output goes directly to console, we automatically use the console's locale.""") parser.add_argument('--alembic-config', required=True, help="Path to alembic's INI file") # Parse args and run command args = parser.parse_args() pysite.lib.init_cli_locale(args.locale, print_info=True) cli.init_app(args) cli.run(args) print("Done.", file=sys.stderr) print("\nDirectory 'install/db' may contain SQL scripts" " you have to run manually.")
def main(argv=sys.argv): cli = PySiteSasscCli() # Main parser parser = argparse.ArgumentParser(description="""PySite-Sassc command-line interface.""", epilog=""" Samples: pysite-sassc -c production.ini www.default.local """) parser.add_argument('-c', '--config', required=True, help="""Path to INI file with configuration, e.g. 'production.ini'""") parser.add_argument('-l', '--locale', help="""Set the desired locale. If omitted and output goes directly to console, we automatically use the console's locale.""") parser.add_argument('site', help="Name of a site, e.g. 'www.default.local'") # Parse args and run command args = parser.parse_args() ###pprint(args); sys.exit() pysite.lib.init_cli_locale(args.locale, print_info=True) cli.init_app(args) cli.compile(args.site) print("Done.", file=sys.stderr)
def main(argv=sys.argv): cli = PySiteCli() # Main parser parser = argparse.ArgumentParser(description="""PySite command-line interface.""", epilog=""" Samples: pysite -c production.ini --format tsv list-rolemembers --order 'role_name, principal_principal' > /tmp/a.txt && gnumeric /tmp/a.txt """) parser.add_argument('-l', '--locale', help="""Set the desired locale. If omitted and output goes directly to console, we automatically use the console's locale.""") parser.add_argument('-c', '--config', required=True, help="""Path to INI file with configuration, e.g. 'production.ini'""") parser.add_argument('-f', '--format', default='yaml', choices=['yaml', 'json', 'tsv', 'txt'], help="Set format for input and output") parser.add_argument('--dry-run', action="store_true", help="The database changes will be rolled back.") subparsers = parser.add_subparsers(title="Commands", dest="subparser_name", help="""Type 'pysite COMMAND --help'""") # Parent parser for DB editing parser_db_edit = argparse.ArgumentParser(description="Database editing", add_help=False) parser_db_edit.add_argument('data', help="The data. For updates, field ID must be present.") # Parent parser for DB deleting parser_db_delete = argparse.ArgumentParser(description="Database deleting", add_help=False) parser_db_delete.add_argument('id', type=int, help="The ID") # Parent parser for DB listers parser_db_lister = argparse.ArgumentParser(description="Database lister", add_help=False) parser_db_lister.add_argument('idlist', nargs='*', type=int, metavar='ID', help="""Filter by these IDs""") parser_db_lister.add_argument('--filter', help="""Define filter with literal SQL (WHERE clause, e.g. 'id between 200 and 300')""") parser_db_lister.add_argument('--order', help="""Define sort order with literal SQL (ORDER BY clause, e.g. 'name DESC')""") # Parser cmd list-principals parser_list_principals = subparsers.add_parser('list-principals', parents=[parser_db_lister], help="List principals") parser_list_principals.set_defaults(func=cli.list_principals) # Parser cmd create-principal parser_create_principal = subparsers.add_parser('create-principal', parents=[parser_db_edit], help="Create principal", epilog="""You might want to try command 'list-principals' to see which fields are available.""" ) parser_create_principal.set_defaults(func=cli.create_principal) # Parser cmd update-principal parser_update_principal = subparsers.add_parser('update-principal', parents=[parser_db_edit], help="Update principal with given ID", epilog="""You might want to try command 'list-principals' to see which fields are available.""" ) parser_update_principal.set_defaults(func=cli.update_principal) # Parser cmd delete-principal parser_delete_principal = subparsers.add_parser('delete-principal', parents=[parser_db_delete], help="Delete principal with given ID", ) parser_delete_principal.set_defaults(func=cli.delete_principal) # Parser cmd list-roles parser_list_roles = subparsers.add_parser('list-roles', parents=[parser_db_lister], help="List roles") parser_list_roles.set_defaults(func=cli.list_roles) # Parser cmd create-role parser_create_role = subparsers.add_parser('create-role', parents=[parser_db_edit], help="Create role") parser_create_role.set_defaults(func=cli.create_role) # Parser cmd update-role parser_update_role = subparsers.add_parser('update-role', parents=[parser_db_edit], help="Update role with given ID") parser_update_role.set_defaults(func=cli.update_role) # Parser cmd delete-role parser_delete_role = subparsers.add_parser('delete-role', parents=[parser_db_delete], help="Delete role with given ID") parser_delete_role.set_defaults(func=cli.delete_role) # Parser cmd list-rolemembers parser_list_rolemembers = subparsers.add_parser('list-rolemembers', parents=[parser_db_lister], help="List rolemembers") parser_list_rolemembers.set_defaults(func=cli.list_rolemembers) # Parser cmd create-rolemember parser_create_rolemember = subparsers.add_parser('create-rolemember', parents=[parser_db_edit], help="Create rolemember") parser_create_rolemember.set_defaults(func=cli.create_rolemember) # Parser cmd delete-rolemember parser_delete_rolemember = subparsers.add_parser('delete-rolemember', parents=[parser_db_delete], help="Delete rolemember with given ID") parser_delete_rolemember.set_defaults(func=cli.delete_rolemember) # Parser cmd list-sites parser_list_sites = subparsers.add_parser('list-sites', help="List sites") parser_list_sites.set_defaults(func=cli.list_sites) # Parser cmd create-site parser_create_site = subparsers.add_parser('create-site', parents=[parser_db_edit], help="Create site", epilog="""Use "help" as data to obtain help about the data structure.""") parser_create_site.set_defaults(func=cli.create_site) # Parser cmd delete-site parser_delete_site = subparsers.add_parser('delete-site', help="Delete site") parser_delete_site.set_defaults(func=cli.delete_site) # Parser cmd create-model parser_create_model = subparsers.add_parser('create-model', help="Create the DB model") parser_create_model.set_defaults(func=cli.create_model) # Parse args and run command args = parser.parse_args() ###pprint(args); sys.exit() pysite.lib.init_cli_locale(args.locale, print_info=True) cli.init_app(args) transaction.begin() try: args.func() if args.dry_run: transaction.abort() else: transaction.commit() except: transaction.abort() raise print("Done.", file=sys.stderr)