def copy_downloads(app, pattern='*'): dl_dir = app.src.joinpath(app.name, 'static', 'download') require.files.directory(dl_dir, use_sudo=True, mode="777") local_dl_dir = Path(import_module(app.name).__file__).parent.joinpath('static', 'download') for f in local_dl_dir.glob(pattern): target = dl_dir.joinpath(f.name) create_file_as_root(target, open(f.as_posix()).read()) sudo('chown %s:%s %s' % (app.name, app.name, target)) require.files.directory(dl_dir, use_sudo=True, mode="755")
def datasets(args): """ cldf datasets <DIR> [ATTRS] List all CLDF datasets in directory <DIR> """ if len(args.args) < 1: raise ParserError('not enough arguments') d = Path(args.args[0]) if not d.exists() or not d.is_dir(): raise ParserError('%s is not an existing directory' % d) for fname in sorted(d.glob('*' + MD_SUFFIX), key=lambda p: p.name): md = Metadata(load(fname)) data = fname.parent.joinpath( md.get_table().url or fname.name[:-len(MD_SUFFIX)]) if data.exists(): print(data) if len(args.args) > 1: maxlen = max(len(a) for a in args.args[1:]) for attr in args.args[1:]: if md.get(attr): print(' %s %s' % ((attr + ':').ljust(maxlen + 1), md[attr]))