Exemple #1
0
    def _runner(input_args):
        if isinstance(input_args, str):
            input_args = input_args.split()
        parser = create_parser()
        args = parser.parse_args(input_args)

        if hasattr(args, 'storage'):
            storage = Storage(os.path.join(tmpdir, "storage"))
            storage.s = None  # prevent requests
            args.storage = storage

        getattr(cdtb_main,
                "command_%s" % args.command.replace('-', '_'))(parser, args)
Exemple #2
0
def parse_storage_args(parser, args) -> Storage:
    """Parse storage-related arguments into a Storage"""

    default_path = os.environ.get('CDRAGONTOOLBOX_STORAGE')
    default_cdn = os.environ.get('CDRAGONTOOLBOX_CDN', 'default')

    cdn = default_cdn if args.cdn is None else args.cdn
    # don't use CDRAGONTOOLBOX_STORAGE when using non-default --cdn is set to
    # avoid mixing files from different CDNs
    if cdn != default_cdn and default_path is not None and args.storage is None:
        parser.error("--storage must be provided when changing --cdn value")

    path = default_path if args.storage is None else args.storage
    if path is None:
        path = "RADS" if cdn == 'default' else f"RADS.{cdn}"

    storage_url = getattr(Storage, f"URL_{cdn}".upper())
    return Storage(path, storage_url)
Exemple #3
0
def storage(tmpdir):
    storage = Storage(os.path.join(tmpdir, 'RADS'))
    storage.s = None  # prevent requests
    return storage