Exemplo n.º 1
0
def _args():
    command_map = Dodo.get("/MENU/commands", {})
    default_session_id = Dodo.get("/MENU/session_id",
                                  os.path.expandvars("$USER"))

    parser = ArgumentParser()
    parser.add_argument(
        "category",
        choices=["all"] + list([_normalize(x) for x in command_map.keys()]),
        nargs="?",
    )
    parser.add_argument("--continue",
                        dest="cont",
                        action="store_true",
                        help=SUPPRESS)
    parser.add_argument("--tmux", action="store_true")
    parser.add_argument("--list", action="store_true")
    parser.add_argument("--run", type=int, nargs="?", const=-1)
    parser.add_argument(
        "--id",
        dest="session_id",
        default=default_session_id,
        help="The tmux session id",
    )

    args = Dodo.parse_args(parser)
    args.category = args.category or "all"
    args.run = -1 if args.run is None else args.run
    args.command_map = command_map

    return args
Exemplo n.º 2
0
def _args():
    Dodo.parser.add_argument("script")
    Dodo.parser.add_argument("script_args", nargs="?")
    args = Dodo.parse_args()
    args.python = Dodo.get_config("/PYTHON/python")
    args.cwd = Dodo.get_config("/PYTHON/cwd")
    return args
Exemplo n.º 3
0
def _args():
    Dodo.parser.add_argument("number", nargs="?")
    Dodo.parser.add_argument("--list", action="store_true")
    Dodo.parser.add_argument("--group", "-g", default="default")
    args = Dodo.parse_args()
    args.dirs = Dodo.get("/DIAL", {})
    return args
Exemplo n.º 4
0
def run_ssh_server(ssh_public_key, target_docker_image):
    cleaned_docker_name = target_docker_image.replace(':',
                                                      '_').replace('/', '_')
    target_container_name = "sshd_on_%s" % cleaned_docker_name

    # start ssh service on a new container based on target_docker_image
    Dodo.run([
        'docker',
        'run',
        '-d',
        '--rm',
        '--publish=0.0.0.0:22:22',
        '--name=%s' % target_container_name,
        target_docker_image,
        '/usr/sbin/sshd',
        '-D',
    ])

    # copy public key to the docker container
    Dodo.run([
        'docker', 'cp', ssh_public_key,
        '%s:/root/.ssh/authorized_keys' % target_container_name
    ])

    # get the ip address
    target_ip = docker(
        'inspect', '-f',
        '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}',
        target_container_name)[:-1]

    return target_ip, target_container_name
Exemplo n.º 5
0
def _args():
    parser = ArgumentParser()
    args = Dodo.parse_args(parser)
    args.rtop = os.path.join(Dodo.get_config('/SERVER/node_modules_dir'),
                             '.bin', 'rtop')
    args.cwd = Dodo.get_config('/WEBPACK/webpack_dir')
    return args
Exemplo n.º 6
0
def _args():
    Dodo.parser.add_argument("yarn_args", nargs="?")
    Dodo.parser.add_argument("--name")
    Dodo.parser.add_argument("--local", "-l", action="store_true")
    args = Dodo.parse_args()
    args.yarn = "yarn"
    args.cwd = Dodo.get_config("/NODE/cwd")
    return args
Exemplo n.º 7
0
def _args():
    parser = ArgumentParser(description="Publish own npm packages")
    parser.add_argument("--unlink", action="store_true")

    # Parse the arguments.
    args = Dodo.parse_args(parser, config_args=[])
    args.dir_by_name = Dodo.get_config("/TSC/src_dir_map")
    args.node_modules_dir = Dodo.get_config("/NODE/node_modules_dir")
    return args
Exemplo n.º 8
0
def _args():
    # Create the parser
    parser = ArgumentParser(description='')
    parser.add_argument('version')

    # Use the parser to create the command arguments
    args = Dodo.parse_args(parser, config_args=[])
    args.cwd = Dodo.get('/ROOT/src_dir')

    return args
Exemplo n.º 9
0
def _remove_package(package, only_from_defaults=False):
    """Install the dir with the default commands."""
    if not only_from_defaults:
        dest_dir = os.path.join(Paths().global_commands_dir(), package)
        if not os.path.exists(dest_dir):
            raise CommandError("Not installed: %s" % dest_dir)
        Dodo.run(["rm", "-rf", dest_dir])

    defaults_dest_dir = os.path.join(Paths().default_commands_dir(), package)
    if os.path.exists(defaults_dest_dir):
        Dodo.run(["rm", defaults_dest_dir])
Exemplo n.º 10
0
def _args():
    parser = ArgumentParser(description="Run typescript compiler")
    parser.add_argument("src_dir_name")
    parser.add_argument("--watch", action="store_true")

    # Parse the arguments.
    args = Dodo.parse_args(parser, config_args=[])

    args.src_dir_map = Dodo.get("/TSC/src_dir_map")
    args.out_dir = Dodo.get("/TSC/out_dir", None)
    args.node_modules_dir = Dodo.get("/NODE/node_modules_dir")
    return args
Exemplo n.º 11
0
def _clone(args, src_dir):
    if os.path.exists(src_dir):
        raise CommandError("Cannot clone into %s, path already exists" %
                           src_dir)

    Dodo.run(
        ["git", "clone", args.git_url,
         os.path.basename(src_dir)] +
        (["--depth", args.depth] if args.depth else []),
        cwd=os.path.dirname(src_dir),
    )
    if args.branch:
        Dodo.run(["git", "checkout", args.branch], cwd=src_dir)
Exemplo n.º 12
0
def _args():
    parser = ArgumentParser(description="")
    parser.add_argument("--url")

    # Parse the arguments.
    args = Dodo.parse_args(parser)

    args.file_browser = load_global_config_parser().get(
        "settings", "file_browser")
    args.browser = load_global_config_parser().get("settings", "browser")
    args.project_dir = Dodo.get("/ROOT/project_dir")

    return args
Exemplo n.º 13
0
def _install_commands_from_package(package):
    Dodo.run([
        _python_path(),
        "-m",
        "pip",
        "install",
        "--upgrade",
        "--target",
        Paths().global_commands_dir(),
        package,
    ])

    return True
Exemplo n.º 14
0
def _args():
    Dodo.parser.description = "Runs nps"
    Dodo.parser.add_argument("--cat", action="store_true")
    Dodo.parser.add_argument("--edit", action="store_true")
    Dodo.parser.add_argument("nps_args", nargs="?")

    args = Dodo.parse_args()
    args.cwd = Dodo.get_config("/NODE/cwd")
    args.nps = Dodo.get_config("/NODE/nps", "nps")

    global_config = load_global_config_parser()
    args.editor = global_config_get(global_config, "settings", "editor")

    return args
Exemplo n.º 15
0
def _args():
    # Create the parser
    parser = ArgumentParser(description="")
    parser.add_argument("--functions", action="store_true")

    # Use the parser to create the command arguments
    args = Dodo.parse_args(parser, config_args=[])
    args.cwd = Dodo.get("/ROOT/project_dir")

    # Raise an error if something is not right
    if False:
        raise CommandError("Oops")

    return args
Exemplo n.º 16
0
def _copy_extra_dirs(local_dir, extra_dirs):
    # todo: convert extra dirs config mapping into a list of key=val
    for extra_dir in extra_dirs or []:
        extra_dir_name, extra_dir_path = extra_dir.split("=")
        local_path = os.path.join(local_dir, extra_dir_name)
        if os.path.exists(local_path):
            raise CommandError("Cannot copy to existing path: " + local_path)
        if not os.path.exists(extra_dir_path):
            raise CommandError("Cannot copy from non-existing path: " + extra_dir_path)

        Dodo.run(["cp", "-rf", extra_dir_path, local_path])
        if os.path.abspath(local_dir).startswith(os.path.abspath(extra_dir_path)):
            rp = os.path.relpath(local_dir, extra_dir_path)
            dead_path = os.path.join(local_path, rp)
            if os.path.exists(dead_path):
                Dodo.run(["rm", "-rf", dead_path])
Exemplo n.º 17
0
def _args():
    parser = ArgumentParser(description="Show help on a command")
    parser.add_argument("command", nargs="*")
    parser.add_argument("--commands", action="store_true")
    parser.add_argument("--aliases", action="store_true")
    args = Dodo.parse_args(parser)
    return args
Exemplo n.º 18
0
def _args():
    parser = ArgumentParser(
        description='Reports unused imports in a ES6 javascript file')

    # Add arguments to the parser here
    parser.add_argument('name', nargs='+')
    return Dodo.parse_args(parser)
Exemplo n.º 19
0
def patch_docker_options(docker_image):
    docker_options = Dodo.get_config('/DOCKER') \
        .setdefault('options', {}) \
        .setdefault(Dodo.command_name, {})

    docker_options.setdefault('image', _docker_image(docker_image))
    docker_options.setdefault('rm', False)
Exemplo n.º 20
0
def _args():
    parser = ArgumentParser(description="Runs node")
    parser.add_argument("--inspect", action="store_true")
    parser.add_argument("--inspect-brk", action="store_true")
    parser.add_argument("--shell", action="store_true")

    args = Dodo.parse_args(parser)
    args.cwd = Dodo.get_config("/NODE/cwd")
    args.node = Dodo.get_config("/NODE/node", "node")
    args.entrypoint = Dodo.get_config("/NODE/entrypoint", "index.js")

    # Raise an error if something is not right
    if False:
        raise CommandError("Oops")

    return args
Exemplo n.º 21
0
def _args():
    parser = ArgumentParser()
    parser.add_argument("--find")
    parser.add_argument("--ip", action="store_true")
    args = Dodo.parse_args(parser)
    args.names = []
    return args
Exemplo n.º 22
0
def check_setuptools():
    if not Dodo.run([_python_path(), "-c", "import setuptools"]):
        _report_error("\n" + bordered(
            "Error: your python version does not have setuptools installed.\n"
            + "Check the settings.python option in %s" %
            Paths().global_config_filename()))
        sys.exit(1)
Exemplo n.º 23
0
def handle_next_to(args):
    command_dirs = get_command_dirs_from_config(Dodo.get())
    command_map = get_command_map(command_dirs)

    if args.next_to:
        item = command_map.get(args.next_to)
        if not item:
            raise CommandError("Script not found: %s" % args.next_to)
        dest_path = os.path.join(os.path.dirname(item.filename),
                                 args.name + ".py")

        if os.path.exists(dest_path) and not args.force:
            raise CommandError("Destination already exists: %s" % dest_path)

        with open(dest_path, "w") as f:
            f.write(
                script_py.format(parser_args_str="",
                                 params_str="",
                                 description="",
                                 args_str=""))
        print(dest_path)
    else:
        print(
            script_py.format(parser_args_str="",
                             params_str="",
                             description="",
                             args_str=""))
Exemplo n.º 24
0
def _args():
    parser = ArgumentParser(
        description="Compare configuration version to "
        "version in original project config file."
    )
    parser.add_argument(
        "--dodo",
        dest="check_dodo",
        action="store_true",
        help=(
            "Check that the installed dodo commands version satisfies the "
            "minimal dodo commands version in the dodo config "
            "(/ROOT/required_dodo_commands_version)"
        ),
    )
    parser.add_argument(
        "--config",
        dest="check_config",
        action="store_true",
        help=(
            "Check that the version field in the local dodo commands config "
            "(/ROOT/version) is up-to-date with the version in the shared "
            "dodo commands config."
        ),
    )
    args = Dodo.parse_args(parser)
    return args
Exemplo n.º 25
0
def _args():
    Dodo.parser.description = "Run something on the commandline"

    Dodo.parser.add_argument("--cwd")
    Dodo.parser.add_argument("script_args")

    args = Dodo.parse_args()
    return args
Exemplo n.º 26
0
def _args():
    parser = ArgumentParser(
        description="Write a value of the global Dodo Command configuration"
    )
    parser.add_argument("key")
    parser.add_argument("val", nargs="?")
    args = Dodo.parse_args(parser)
    return args
Exemplo n.º 27
0
def _choices():
    choices = []
    for key in Dodo.get("/DOCKER_OPTIONS", {}).keys():
        keys = [key] if isinstance(key, str) else key
        for x in keys:
            if x not in choices and not x.startswith("!"):
                choices.append(str(x))
    return choices
Exemplo n.º 28
0
def _args():
    Dodo.parser.description = "Download a command script and run it"

    Dodo.parser.add_argument("url")
    Dodo.parser.add_argument("script_args")

    args = Dodo.parse_args()
    return args
Exemplo n.º 29
0
    def modify_args(self, command_line_args, root_node, cwd):  # noqa
        if not getattr(command_line_args, "use_debugger", False):
            return root_node, cwd

        debugger_node = ArgsTreeNode("debugger",
                                     args=[Dodo.get("/BUILD/debugger")])
        debugger_node.add_child(root_node)
        return debugger_node, cwd
Exemplo n.º 30
0
def _args():
    parser = ArgumentParser()
    parser.add_argument("where")
    parser.add_argument("what")
    parser.add_argument("--pattern", default="*")
    parser.add_argument("--replace")
    args = Dodo.parse_args(parser)
    return args