Project

General

Profile

« Previous | Next » 

Revision e8c1af86

Added by koszko over 1 year ago

use parameters to click.Path instead of validating paths manually

View differences:

src/hydrilla/builder/__main__.py
30 30

  
31 31
from .build import Build
32 32

  
33
def validate_dir_path(ctx, param, value):
34
    path = Path(value)
35
    if path.is_dir():
36
        return path.resolve()
37

  
38
    raise click.BadParameter(f'{param.human_readable_name} must be a directory path')
39

  
40
def validate_path(ctx, param, value):
41
    return Path(value)
33
dir_type = click.Path(exists=True, file_okay=False, resolve_path=True)
34
index_type = click.Path(path_type=Path)
42 35

  
43 36
@click.command()
44
@click.option('-s', '--srcdir', default='.', type=click.Path(),
45
              callback=validate_dir_path,
37
@click.option('-s', '--srcdir', default='.', type=dir_type,
46 38
              help='Source directory to build from.')
47
@click.option('-i', '--index-json', default='index.json', type=click.Path(),
48
              callback=validate_path,
39
@click.option('-i', '--index-json', default='index.json', type=index_type,
49 40
              help='Path to file to be processed instead of index.json (if not absolute, resolved relative to srcdir).')
50
@click.option('-d', '--dstdir', type=click.Path(), required=True,
51
              callback=validate_dir_path,
41
@click.option('-d', '--dstdir', type=dir_type, required=True,
52 42
              help='Destination directory to write built package files to.')
53 43
def preform_build(srcdir, index_json, dstdir):
54 44
    """
55 45
    Build Hydrilla package from scrdir and write the resulting files under
56 46
    dstdir.
57 47
    """
58
    build = Build(srcdir, index_json)
59
    build.write_package_files(dstdir)
48
    build = Build(Path(srcdir), Path(index_json.decode()))
49
    build.write_package_files(Path(dstdir))
60 50

  
61 51
preform_build()

Also available in: Unified diff