diff options
author | Wojtek Kosior <koszko@koszko.org> | 2022-02-07 16:51:11 +0100 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2022-02-07 16:51:11 +0100 |
commit | 16eaeb86948349141b1e6072eb6540c7cece10b6 (patch) | |
tree | a5d69a3dbc448b15f016316db31c8280a13a1b10 /src/hydrilla/builder/__main__.py | |
parent | b5eb89e10762fb7e71c2e8e0cf28ab7c5206884a (diff) | |
download | hydrilla-builder-16eaeb86948349141b1e6072eb6540c7cece10b6.tar.gz hydrilla-builder-16eaeb86948349141b1e6072eb6540c7cece10b6.zip |
move to a namespace package under 'hydrilla'
Diffstat (limited to 'src/hydrilla/builder/__main__.py')
-rw-r--r-- | src/hydrilla/builder/__main__.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/hydrilla/builder/__main__.py b/src/hydrilla/builder/__main__.py new file mode 100644 index 0000000..5b98202 --- /dev/null +++ b/src/hydrilla/builder/__main__.py @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Command line interface of Hydrilla package builder. +# +# This file is part of Hydrilla +# +# Copyright (C) 2022 Wojtek Kosior +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# +# I, Wojtek Kosior, thereby promise not to sue for violation of this +# file's license. Although I request that you do not make use this code +# in a proprietary program, I am not going to enforce this in court. + +from pathlib import Path + +import click + +from .build import Build + +def validate_dir_path(ctx, param, value): + path = Path(value) + if path.is_dir(): + return path.resolve() + + raise click.BadParameter(f'{param.human_readable_name} must be a directory path') + +def validate_path(ctx, param, value): + return Path(value) + +@click.command() +@click.option('-s', '--srcdir', default='.', type=click.Path(), + callback=validate_dir_path, + help='Source directory to build from.') +@click.option('-i', '--index-json', default='index.json', type=click.Path(), + callback=validate_path, + help='Path to file to be processed instead of index.json (if not absolute, resolved relative to srcdir).') +@click.option('-d', '--dstdir', type=click.Path(), required=True, + callback=validate_dir_path, + help='Destination directory to write built package files to.') +def preform_build(srcdir, index_json, dstdir): + """ + Build Hydrilla package from scrdir and write the resulting files under + dstdir. + """ + build = Build(srcdir, index_json) + build.write_package_files(dstdir) + +preform_build() |