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
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
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
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
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
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
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
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
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])
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
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)
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
def _install_commands_from_package(package): Dodo.run([ _python_path(), "-m", "pip", "install", "--upgrade", "--target", Paths().global_commands_dir(), package, ]) return True
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
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
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])
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
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)
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)
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
def _args(): parser = ArgumentParser() parser.add_argument("--find") parser.add_argument("--ip", action="store_true") args = Dodo.parse_args(parser) args.names = [] return args
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)
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=""))
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
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
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
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
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
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
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