예제 #1
0
def main():
    parser = argparse.ArgumentParser(prog="flux-jobspec")
    parser.add_argument("--format", choices=["json", "yaml"], default="json")

    subparsers = parser.add_subparsers()
    slurm_parser = get_slurm_common_parser()
    srun_parser = subparsers.add_parser(
        "srun",
        parents=[slurm_parser],
        help="subcommand for SLURM-style CLI arguments",
        formatter_class=util.help_formatter(),
    )
    srun_parser.set_defaults(func=slurm_jobspec)

    args = parser.parse_args()

    if not args.command:  # list is empty
        parser.error("command is required")
        sys.exit(1)

    jobspec = args.func(args)

    if args.format == "yaml":
        out = yaml.dump(jobspec)
    else:
        out = json.dumps(jobspec, ensure_ascii=False)
    print(out)
예제 #2
0
def parse_args():
    try:
        ws_default = "{0.columns}x{0.lines}".format(os.get_terminal_size())
    except OSError:
        ws_default = "80x25"

    format_list = ",".join(formats.keys())

    parser = argparse.ArgumentParser(
        description="run command with a pty, log output to a file",
        formatter_class=util.help_formatter(),
    )
    parser.add_argument(
        "-o", "--output", help="set output file. Default=stdout", default="-"
    )
    parser.add_argument(
        "-n", "--no-output", help="redirect output to /dev/null", action="store_true"
    )
    parser.add_argument(
        "-i",
        "--input",
        help="set an input file in asciicast format. "
        + "Use the special value 'none' to close stdin of pty immediately.",
    )
    parser.add_argument("--stderr", help="redirect stderr of process")
    parser.add_argument(
        "-f",
        "--format",
        help=f"set output format ({format_list}). Default=raw",
        default="raw",
    )
    parser.add_argument(
        "-w",
        "--window-size",
        metavar="WxH",
        help=f"set pty window size in WIDTHxHEIGHT (default is {ws_default})",
        default=ws_default,
    )
    parser.add_argument(
        "--term",
        metavar="TERMINAL",
        help=f"set value of TERM variable for client (default xterm)",
        default="xterm",
    )
    parser.add_argument(
        "-c",
        "--quit-char",
        metavar="C",
        help=f"Set the QUIT character (written to pty on SIGUSR1)",
        default="",
    )
    parser.add_argument(
        "--line-buffer", help="Attempt to line buffer theoutput", action="store_true"
    )
    parser.add_argument("COMMAND")
    parser.add_argument("ARGS", nargs=argparse.REMAINDER)
    return parser.parse_args()
예제 #3
0
def parse_args():
    try:
        ws_default = "{0.columns}x{0.lines}".format(os.get_terminal_size())
    except OSError:
        ws_default = "80x25"

    format_list = ",".join(formats.keys())

    parser = argparse.ArgumentParser(
        description="run command with a pty, log output to a file",
        formatter_class=util.help_formatter(),
    )
    parser.add_argument(
        "-o", "--output", help="set output file. Default=stdout", default="-"
    )
    parser.add_argument(
        "-f",
        "--format",
        help=f"set output format ({format_list}). Default=raw",
        default="raw",
    )
    parser.add_argument(
        "-w",
        "--window-size",
        metavar="WxH",
        help=f"set pty window size in WIDTHxHEIGHT (default is {ws_default})",
        default=ws_default,
    )
    parser.add_argument(
        "-c",
        "--quit-char",
        metavar="C",
        help=f"Set the QUIT character (written to pty on SIGUSR1)",
        default="",
    )
    parser.add_argument(
        "--line-buffer", help="Attempt to line buffer theoutput", action="store_true"
    )
    parser.add_argument("COMMAND")
    parser.add_argument("ARGS", nargs=argparse.REMAINDER)
    return parser.parse_args()