Пример #1
0
def common_options(f):
    """Decorator to add common options for all CLI commands"""
    f = click.option(
        '-p', '--projects', help='Set path to projects.cfg',
        type=click.Path(dir_okay=False, exists=True),
        callback=set_project_config_file_path, expose_value=False,
        is_eager=True)(f)
    return click_log.simple_verbosity_option(logger)(f)
Пример #2
0
def run_steps(name: str, steps: List[Step]):
    def command(config):
        _steps(steps, config)

    command.__name__ = name

    return cli.command()(click_log.simple_verbosity_option(logger)(capture(
        click.pass_obj(command))))
Пример #3
0
    click.option('--skip-host-plugins',
                 is_flag=True,
                 help='Do not install host OS plugins provided by the package (CLI, etc). '
                 'NOTE: In case when package host OS plugins are set as mandatory in '
                 'package manifest this option will fail the installation.')
]


PACKAGE_COMMON_OPERATION_OPTIONS = [
    click.option('-f', '--force',
                 is_flag=True,
                 help='Force operation by ignoring package dependency tree and package manifest validation failures.'),
    click.option('-y', '--yes',
                 is_flag=True,
                 help='Automatically answer yes on prompts.'),
    click_log.simple_verbosity_option(log, help='Either CRITICAL, ERROR, WARNING, INFO or DEBUG. Default is INFO.'),
]


def get_package_status(package: PackageEntry):
    """ Returns the installation status message for package. """

    if package.built_in:
        return 'Built-In'
    elif package.installed:
        return 'Installed'
    else:
        return 'Not Installed'


@click.group()
Пример #4
0
    push_new_version,
    tag_new_version,
    update_changelog_file,
)

logger = logging.getLogger("semantic_release")

SECRET_NAMES = [
    "PYPI_USERNAME",
    "PYPI_PASSWORD",
    "GH_TOKEN",
    "GL_TOKEN",
]

COMMON_OPTIONS = [
    click_log.simple_verbosity_option(logger),
    click.option(
        "--major", "force_level", flag_value="major", help="Force major version."
    ),
    click.option(
        "--minor", "force_level", flag_value="minor", help="Force minor version."
    ),
    click.option(
        "--patch", "force_level", flag_value="patch", help="Force patch version."
    ),
    click.option("--post", is_flag=True, help="Post changelog."),
    click.option("--retry", is_flag=True, help="Retry the same release, do not bump."),
    click.option(
        "--noop",
        is_flag=True,
        help="No-operations mode, finds the new version number without changing it.",
Пример #5
0
class NaturalOrderGroup(cloup.Group):
    def list_commands(self, ctx):
        return self.commands.keys()


CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])


@cloup.group(cls=NaturalOrderGroup, context_settings=CONTEXT_SETTINGS)
def cli():
    if not SUPPORTED_PLATFORMS.get(PLATFORM):
        return Manager.exit(1, f"{PLATFORM} is not supported yet")


def validate_serials(ctx, param, value):
    if value is not None:
        serials = value if isinstance(value, (tuple, list)) else (value,)
        for serial in serials:
            if not SERIAL_RE.match(serial):
                raise click.BadParameter(f"{serial} is not a valid serial number")
    return value


common_options = {
    "optional_serial": cloup.argument("serial", nargs=-1, required=False, callback=validate_serials),
    "optional_serials": cloup.argument("serials", nargs=-1, required=False, callback=validate_serials),
    "verbosity": click_log.simple_verbosity_option(
        logger, "--verbosity", help="Either CRITICAL, ERROR, WARNING, INFO or DEBUG", show_default=True
    ),
}