Exemple #1
0
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.")
Exemple #2
0
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)
Exemple #3
0
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)