コード例 #1
0
def validusermod(usermod, username, password):
    if (usermod == False):
        if (username != None):
            click.echo()
            raise click.NoSuchOption(
                username,
                "Admin() got an unexpected argument '--username' ('admin --help' for usage help)"
            )
        if (password != None):
            click.echo()
            raise click.NoSuchOption(
                password,
                "Admin() got an unexpected argument '--passw' ('admin --help' for usage help)"
            )
    else:
        if (username == None):
            click.echo()
            raise click.BadOptionUsage(username, "Missing option '--username'")
        if (password == None):
            click.echo()
            raise click.BadOptionUsage(password, "Missing option '--passw'")
        usercheck(username)
        passwcheck(password)
    if usermod:
        return True
    return False
コード例 #2
0
ファイル: adb_commands.py プロジェクト: dbaelz/adbons
def clear(ctx, device, index, app):
    """Clears the app data."""
    device = __determine_device_id(ctx.params)
    app = __get_id(app, Config.SECTION_APP, Config.KEY_DEFAULT)
    if app is None:
        raise click.NoSuchOption("app", "app id is required.")
    Adb.clear_app_data(device, app)
コード例 #3
0
ファイル: adb_commands.py プロジェクト: dbaelz/adbons
def kill(ctx, device, index, app):
    """Kills (force-stop) the app."""
    device = __determine_device_id(ctx.params)
    app = __get_id(app, Config.SECTION_APP, Config.KEY_DEFAULT)
    if app is None:
        raise click.NoSuchOption("app", "app id is required.")
    Adb.kill_app(device, app)
コード例 #4
0
def validsessionsupd(upd, source):
    if (upd == False):
        if (source != None):
            click.echo()
            raise click.NoSuchOption(
                username,
                "Admin() got an unexpected argument '--source' (Try 'admin --help' for usage help)"
            )
    else:
        if (source == None):
            click.echo()
            raise click.BadOptionUsage(source, "Missing option '--source'")
    if upd:
        return True
    return False
コード例 #5
0
def validate_preload_argv(ctx, param, value):
    """Click option callback providing validation of preload subcommand arguments."""
    if not value and not ctx.params.get("preload", None):
        # No preload argv provided and no preload modules specified.
        return value

    if value and not ctx.params.get("preload", None):
        # Report a usage error matching standard click error conventions.
        unexpected_args = [v for v in value if v.startswith("-")]
        for a in unexpected_args:
            raise click.NoSuchOption(a)
        raise click.UsageError(
            "Got unexpected extra argument%s: (%s)"
            % ("s" if len(value) > 1 else "", " ".join(value))
        )

    preload_modules = {
        name: _import_module(name)
        for name in ctx.params.get("preload")
        if not is_webaddress(name)
    }

    preload_commands = [
        getattr(m, "dask_setup", None)
        for m in preload_modules.values()
        if isinstance(getattr(m, "dask_setup", None), click.Command)
    ]

    if len(preload_commands) > 1:
        raise click.UsageError(
            "Multiple --preload modules with click-configurable setup: %s"
            % list(preload_modules.keys())
        )

    if value and not preload_commands:
        raise click.UsageError(
            "Unknown argument specified: %r Was click-configurable --preload target provided?"
        )
    if not preload_commands:
        return value
    else:
        preload_command = preload_commands[0]

    ctx = click.Context(preload_command, allow_extra_args=False)
    preload_command.parse_args(ctx, list(value))

    return value
コード例 #6
0
ファイル: __main__.py プロジェクト: r1oga/raiden-contracts
 def f(_: Any, param: Parameter, value: Any) -> None:
     if value is not None:
         raise click.NoSuchOption(
             f'--{param.name.replace("_", "-")} is no longer a valid option. ' + message
         )
コード例 #7
0
ファイル: cli.py プロジェクト: tteearu/certidude
def certidude_list(ca, show_key_type, show_extensions, show_path):
    from pycountry import countries

    def dump_common(j):
        if show_path:
            click.echo(" |    |   Path: %s" % j.path)

        person = [j for j in (j.given_name, j.surname) if j]
        if person:
            click.echo(" |    |   Associated person: %s" % " ".join(person) +
                       (" <%s>" % j.email_address if j.email_address else ""))
        elif j.email_address:
            click.echo(" |    |   Associated e-mail: " + j.email_address)

        bits = [
            j for j in (countries.get(
                alpha2=j.country_code.upper()).name if j.country_code else "",
                        j.state_or_county, j.city, j.organization,
                        j.organizational_unit) if j
        ]
        if bits:
            click.echo(" |    |   Organization: %s" % ", ".join(bits))

        if show_key_type:
            click.echo(" |    |   Key type: %s-bit %s" %
                       (j.key_length, j.key_type))

        if show_extensions:
            for key, value, data in j.extensions:
                click.echo((" |    |   Extension " + key + ":").ljust(50) +
                           " " + value)
        elif j.key_usage:
            click.echo(" |    |   Key usage: " + j.key_usage)
        click.echo(" |    |")

    config = load_config()

    wanted_list = None
    if ca:
        missing = list(set(ca) - set(config.ca_list))
        if missing:
            raise click.NoSuchOption(
                option_name='',
                message="Unable to find certificate authority.",
                possibilities=config.ca_list)
        wanted_list = ca

    for ca in config.all_authorities(wanted_list):
        click.echo("Certificate authority " + click.style(ca.slug, fg="blue"))
        #        if ca.certificate.email_address:
        #            click.echo("  \u2709 %s" % ca.certificate.email_address)

        if ca.certificate.signed < NOW and ca.certificate.expires > NOW:
            print(ca.certificate.expires)
            click.echo(" | \u2713 Certificate: " +
                       click.style("valid", fg="green") +
                       ", %s" % ca.certificate.expires)
        elif NOW > ca.certificate.expires:
            click.echo(" | \u2717 Certificate: " +
                       click.style("expired", fg="red"))
        else:
            click.echo(" | \u2717 Certificate: " +
                       click.style("not valid yet", fg="red"))

        if os.path.exists(ca.private_key):
            click.echo(" | \u2713 Private key " + ca.private_key + ": " +
                       click.style("okay", fg="green"))
            # TODO: Check permissions
        else:
            click.echo(" | \u2717 Private key " + ca.private_key + ": " +
                       click.style("does not exist", fg="red"))

        if os.path.isdir(ca.signed_dir):
            click.echo(" | \u2713 Signed certificates directory " +
                       ca.signed_dir + ": " + click.style("okay", fg="green"))
        else:
            click.echo(" | \u2717 Signed certificates directory " +
                       ca.signed_dir + ": " +
                       click.style("does not exist", fg="red"))

        if ca.revoked_dir:
            click.echo(" |   Revoked certificates directory: %s" %
                       ca.revoked_dir)

        click.echo(" +-- Pending requests")

        for j in ca.get_requests():
            click.echo(" |    +-- Request " +
                       click.style(j.common_name, fg="blue"))
            click.echo(" |    |   Submitted: %s, %s" %
                       (naturaltime(j.created), j.created))
            dump_common(j)

        click.echo(" +-- Signed certificates")

        for j in ca.get_signed():
            click.echo(
                " |    +-- Certificate " +
                click.style(j.common_name, fg="blue") + " " + click.style(
                    ":".join(re.findall("\d\d", j.serial_number)), fg="white"))

            if j.signed < NOW and j.expires > NOW:
                click.echo(" |    | \u2713 Certificate " +
                           click.style("valid", fg="green") + " " +
                           naturaltime(j.expires))
            elif NOW > j.expires:
                click.echo(" |    | \u2717 Certificate " +
                           click.style("expired", fg="red") + " " +
                           naturaltime(j.expires))
            else:
                click.echo(" |    | \u2717 Certificate " +
                           click.style("not valid yet", fg="red"))
            dump_common(j)

        click.echo(" +-- Revocations")

        for j in ca.get_revoked():
            click.echo(
                " |    +-- Revocation " +
                click.style(j.common_name, fg="blue") + " " + click.style(
                    ":".join(re.findall("\d\d", j.serial_number)), fg="white"))
            #       click.echo(" |    |   Serial: %s" % ":".join(re.findall("\d\d", j.serial_number)))
            if show_path:
                click.echo(" |    |   Path: %s" % j.path)
            click.echo(" |    |   Revoked: %s%s" %
                       (naturaltime(NOW - j.changed),
                        click.style(", %s" % j.changed, fg="white")))
            dump_common(j)

        click.echo()
コード例 #8
0
 def f(_, param, value):
     if value is not None:
         raise click.NoSuchOption(
             f'--{param.name.replace("_", "-")} is no longer a valid option. '
             + message)
コード例 #9
0
ファイル: theonionbox.py プロジェクト: sb864/theonionbox
def launcher(results, debug, trace, config, cc, log):

    # This raises (by intension) if no context.
    ctx = click.get_current_context()

    params = {}
    for res in results:
        params.update(res)

    # Verify the parameters defined in the configuration file:
    for cmd in ['box', 'tor', 'proxy']:

        # If there was a config file, it's values have been loaded into the default_map
        dm = ctx.default_map.get(cmd, {})

        # This is a command
        func = globals()[cmd]

        # Get the interface = names of all valid parameters of our command
        func_params_name = [p.name for p in func.params]

        # Check if a parameter found in the config file...
        for d in dm:
            # ... is part of the interface:
            if d not in func_params_name:
                # If not, raise an error!
                ref = {'box': 'TheOnionBox', 'tor': 'Tor', 'proxy': 'Proxy'}
                raise click.NoSuchOption(
                    d,
                    f'Invalid option in configuration file: [{ref[cmd]}] {d}')

        # After this validation,
        # we use the values found in the default_map to feed the commands that are not called via the command line
        if cmd not in params:
            # call the command with the values from the config file
            params.update(ctx.invoke(func, **dm))

    if params['proxy']['control'] == 'tor':
        transfer = ['control', 'host', 'port', 'socket']
        for item in transfer:
            params['proxy'][item] = params['tor'][item]
    else:
        check = ['host', 'port', 'socket']
        for item in check:
            if params['proxy'][item] == 'tor':
                params['proxy'][item] = params['tor'][item]

    params['debug'] = debug
    params['trace'] = trace
    params['config'] = config
    params['cc'] = cc
    params['log'] = log

    # Next We do all the stuff to prepare the environment to run a Box

    # Provide the demanded CurrentWorkingDirectory ... without truely changing to it via os.chdir !!
    # We resolve this Path, as __file__ might be relative, if __name__ == __main__.
    cwd = pathlib.Path(__file__).resolve()
    cwd = cwd.parent
    assert cwd.exists()
    params['cwd'] = cwd

    if __name__ == '__main__' or __package__ in [None, '']:
        # Add the current dir to the site-dirs, to allow ABSOLUTE import
        site.addsitedir(cwd)
        from tob.box import Box
    else:
        # we're in a package => RELATIVE should work.
        from .tob.box import Box

    tob = Box(params)
    tob.run()
コード例 #10
0
 def f(_: Any, param: Parameter, value: Any) -> None:
     if value is not None:
         param_name = param.name.replace("_", "-") if param.name else "unnamed-param"
         raise click.NoSuchOption(f"--{param_name} is no longer a valid option. " + message)