UNPKG

@elliottcable/bs-cmdliner

Version:

Cmdliner — Declarative definition of command line interfaces for OCaml

508 lines (441 loc) 13.3 kB
'use strict'; var $$Set = require("bs-platform/lib/js/set.js"); var List = require("bs-platform/lib/js/list.js"); var Curry = require("bs-platform/lib/js/curry.js"); var Caml_obj = require("bs-platform/lib/js/caml_obj.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var Caml_primitive = require("bs-platform/lib/js/caml_primitive.js"); var Cmdliner_manpage = require("./cmdliner_manpage.bs.js"); var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js"); var c = /* record */[/* contents */0]; function new_id(param) { var id = c[0]; c[0] = c[0] + 1 | 0; if (id > c[0]) { throw [ Caml_builtin_exceptions.assert_failure, /* tuple */[ "cmdliner_info.ml", 12, 28 ] ]; } return id; } function env($staropt$star, $staropt$star$1, env_var) { var env_docs = $staropt$star !== undefined ? $staropt$star : Cmdliner_manpage.s_environment; var env_doc = $staropt$star$1 !== undefined ? $staropt$star$1 : "See option $(opt)."; return /* record */[ /* env_id */new_id(/* () */0), /* env_var */env_var, /* env_doc */env_doc, /* env_docs */env_docs ]; } function env_var(e) { return e[/* env_var */1]; } function env_doc(e) { return e[/* env_doc */2]; } function env_docs(e) { return e[/* env_docs */3]; } function compare(a0, a1) { return Caml_primitive.caml_int_compare(a0[/* env_id */0], a1[/* env_id */0]); } var Env = /* module */[/* compare */compare]; var Envs = $$Set.Make(Env); function pos(pos_rev, pos_start, pos_len) { return /* record */[ /* pos_rev */pos_rev, /* pos_start */pos_start, /* pos_len */pos_len ]; } function pos_rev(p) { return p[/* pos_rev */0]; } function pos_start(p) { return p[/* pos_start */1]; } function pos_len(p) { return p[/* pos_len */2]; } var dumb_pos = /* record */[ /* pos_rev */false, /* pos_start */-1, /* pos_len */undefined ]; function arg(docs, $staropt$star, $staropt$star$1, env, names) { var docv = $staropt$star !== undefined ? $staropt$star : ""; var doc = $staropt$star$1 !== undefined ? $staropt$star$1 : ""; var dash = function (n) { if (n.length === 1) { return "-" + n; } else { return "--" + n; } }; var opt_names = List.map(dash, names); var docs$1 = docs !== undefined ? docs : ( names ? Cmdliner_manpage.s_options : Cmdliner_manpage.s_arguments ); return /* record */[ /* id */new_id(/* () */0), /* absent : Val */[""], /* env */env, /* doc */doc, /* docv */docv, /* docs */docs$1, /* pos */dumb_pos, /* opt_kind : Flag */0, /* opt_names */opt_names, /* opt_all */false ]; } function arg_id(a) { return a[/* id */0]; } function arg_absent(a) { return a[/* absent */1]; } function arg_env(a) { return a[/* env */2]; } function arg_doc(a) { return a[/* doc */3]; } function arg_docv(a) { return a[/* docv */4]; } function arg_docs(a) { return a[/* docs */5]; } function arg_pos(a) { return a[/* pos */6]; } function arg_opt_kind(a) { return a[/* opt_kind */7]; } function arg_opt_names(a) { return a[/* opt_names */8]; } function arg_opt_name_sample(a) { var _param = a[/* opt_names */8]; while(true) { var param = _param; if (param) { var n = param[0]; if (n.length > 2) { return n; } else { _param = param[1]; continue ; } } else { return List.hd(a[/* opt_names */8]); } }; } function arg_make_req(a) { return /* record */[ /* id */a[/* id */0], /* absent : Err */0, /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */a[/* pos */6], /* opt_kind */a[/* opt_kind */7], /* opt_names */a[/* opt_names */8], /* opt_all */a[/* opt_all */9] ]; } function arg_make_all_opts(a) { return /* record */[ /* id */a[/* id */0], /* absent */a[/* absent */1], /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */a[/* pos */6], /* opt_kind */a[/* opt_kind */7], /* opt_names */a[/* opt_names */8], /* opt_all */true ]; } function arg_make_opt(absent, opt_kind, a) { return /* record */[ /* id */a[/* id */0], /* absent */absent, /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */a[/* pos */6], /* opt_kind */opt_kind, /* opt_names */a[/* opt_names */8], /* opt_all */a[/* opt_all */9] ]; } function arg_make_opt_all(absent, opt_kind, a) { return /* record */[ /* id */a[/* id */0], /* absent */absent, /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */a[/* pos */6], /* opt_kind */opt_kind, /* opt_names */a[/* opt_names */8], /* opt_all */true ]; } function arg_make_pos(pos, a) { return /* record */[ /* id */a[/* id */0], /* absent */a[/* absent */1], /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */pos, /* opt_kind */a[/* opt_kind */7], /* opt_names */a[/* opt_names */8], /* opt_all */a[/* opt_all */9] ]; } function arg_make_pos_abs(absent, pos, a) { return /* record */[ /* id */a[/* id */0], /* absent */absent, /* env */a[/* env */2], /* doc */a[/* doc */3], /* docv */a[/* docv */4], /* docs */a[/* docs */5], /* pos */pos, /* opt_kind */a[/* opt_kind */7], /* opt_names */a[/* opt_names */8], /* opt_all */a[/* opt_all */9] ]; } function arg_is_opt(a) { return a[/* opt_names */8] !== /* [] */0; } function arg_is_pos(a) { return a[/* opt_names */8] === /* [] */0; } function arg_is_req(a) { return a[/* absent */1] === /* Err */0; } function arg_pos_cli_order(a0, a1) { var c = Caml_primitive.caml_bool_compare(a0[/* pos */6][/* pos_rev */0], a1[/* pos */6][/* pos_rev */0]); if (c !== 0) { return c; } else if (a0[/* pos */6][/* pos_rev */0]) { return Caml_primitive.caml_int_compare(a1[/* pos */6][/* pos_start */1], a0[/* pos */6][/* pos_start */1]); } else { return Caml_primitive.caml_int_compare(a0[/* pos */6][/* pos_start */1], a1[/* pos */6][/* pos_start */1]); } } function rev_arg_pos_cli_order(a0, a1) { return arg_pos_cli_order(a1, a0); } function compare$1(a0, a1) { return Caml_primitive.caml_int_compare(a0[/* id */0], a1[/* id */0]); } var Arg = /* module */[/* compare */compare$1]; var Args = $$Set.Make(Arg); function exit($staropt$star, $staropt$star$1, max, min) { var exit_docs = $staropt$star !== undefined ? $staropt$star : Cmdliner_manpage.s_exit_status; var exit_doc = $staropt$star$1 !== undefined ? $staropt$star$1 : "undocumented"; var max$1 = max !== undefined ? max : min; return /* record */[ /* exit_statuses : tuple */[ min, max$1 ], /* exit_doc */exit_doc, /* exit_docs */exit_docs ]; } function exit_statuses(e) { return e[/* exit_statuses */0]; } function exit_doc(e) { return e[/* exit_doc */1]; } function exit_docs(e) { return e[/* exit_docs */2]; } function exit_order(e0, e1) { return Caml_obj.caml_compare(e0[/* exit_statuses */0], e1[/* exit_statuses */0]); } function term($staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, $staropt$star$5, $staropt$star$6, $staropt$star$7, term_version, term_name) { var term_args = $staropt$star !== undefined ? Caml_option.valFromOption($staropt$star) : Args[/* empty */0]; var term_man_xrefs = $staropt$star$1 !== undefined ? $staropt$star$1 : /* [] */0; var term_man = $staropt$star$2 !== undefined ? $staropt$star$2 : /* [] */0; var term_envs = $staropt$star$3 !== undefined ? $staropt$star$3 : /* [] */0; var term_exits = $staropt$star$4 !== undefined ? $staropt$star$4 : /* [] */0; var term_sdocs = $staropt$star$5 !== undefined ? $staropt$star$5 : Cmdliner_manpage.s_options; var term_docs = $staropt$star$6 !== undefined ? $staropt$star$6 : "COMMANDS"; var term_doc = $staropt$star$7 !== undefined ? $staropt$star$7 : ""; var term_info = /* record */[ /* term_name */term_name, /* term_version */term_version, /* term_doc */term_doc, /* term_docs */term_docs, /* term_sdocs */term_sdocs, /* term_exits */term_exits, /* term_envs */term_envs, /* term_man */term_man, /* term_man_xrefs */term_man_xrefs ]; return /* record */[ /* term_info */term_info, /* term_args */term_args ]; } function term_name(t) { return t[/* term_info */0][/* term_name */0]; } function term_version(t) { return t[/* term_info */0][/* term_version */1]; } function term_doc(t) { return t[/* term_info */0][/* term_doc */2]; } function term_docs(t) { return t[/* term_info */0][/* term_docs */3]; } function term_stdopts_docs(t) { return t[/* term_info */0][/* term_sdocs */4]; } function term_exits(t) { return t[/* term_info */0][/* term_exits */5]; } function term_envs(t) { return t[/* term_info */0][/* term_envs */6]; } function term_man(t) { return t[/* term_info */0][/* term_man */7]; } function term_man_xrefs(t) { return t[/* term_info */0][/* term_man_xrefs */8]; } function term_args(t) { return t[/* term_args */1]; } function term_add_args(t, args) { return /* record */[ /* term_info */t[/* term_info */0], /* term_args */Curry._2(Args[/* union */6], args, t[/* term_args */1]) ]; } function $$eval(term, main, choices, env) { return /* record */[ /* term */term, /* main */main, /* choices */choices, /* env */env ]; } function eval_term(e) { return e[/* term */0]; } function eval_main(e) { return e[/* main */1]; } function eval_choices(e) { return e[/* choices */2]; } function eval_env_var(e, v) { return Curry._1(e[/* env */3], v); } function eval_kind(ei) { if (ei[/* choices */2] === /* [] */0) { return /* Simple */-317491118; } else if (ei[/* term */0][/* term_info */0][/* term_name */0] === ei[/* main */1][/* term_info */0][/* term_name */0]) { return /* Multiple_main */-91404312; } else { return /* Multiple_sub */491021489; } } function eval_with_term(ei, term) { return /* record */[ /* term */term, /* main */ei[/* main */1], /* choices */ei[/* choices */2], /* env */ei[/* env */3] ]; } function eval_has_choice(e, cmd) { var is_cmd = function (t) { return t[/* term_info */0][/* term_name */0] === cmd; }; return List.exists(is_cmd, e[/* choices */2]); } exports.env = env; exports.env_var = env_var; exports.env_doc = env_doc; exports.env_docs = env_docs; exports.Env = Env; exports.Envs = Envs; exports.pos = pos; exports.pos_rev = pos_rev; exports.pos_start = pos_start; exports.pos_len = pos_len; exports.arg = arg; exports.arg_id = arg_id; exports.arg_absent = arg_absent; exports.arg_env = arg_env; exports.arg_doc = arg_doc; exports.arg_docv = arg_docv; exports.arg_docs = arg_docs; exports.arg_opt_names = arg_opt_names; exports.arg_opt_name_sample = arg_opt_name_sample; exports.arg_opt_kind = arg_opt_kind; exports.arg_pos = arg_pos; exports.arg_make_req = arg_make_req; exports.arg_make_all_opts = arg_make_all_opts; exports.arg_make_opt = arg_make_opt; exports.arg_make_opt_all = arg_make_opt_all; exports.arg_make_pos = arg_make_pos; exports.arg_make_pos_abs = arg_make_pos_abs; exports.arg_is_opt = arg_is_opt; exports.arg_is_pos = arg_is_pos; exports.arg_is_req = arg_is_req; exports.arg_pos_cli_order = arg_pos_cli_order; exports.rev_arg_pos_cli_order = rev_arg_pos_cli_order; exports.Arg = Arg; exports.Args = Args; exports.exit = exit; exports.exit_statuses = exit_statuses; exports.exit_doc = exit_doc; exports.exit_docs = exit_docs; exports.exit_order = exit_order; exports.term = term; exports.term_name = term_name; exports.term_version = term_version; exports.term_doc = term_doc; exports.term_docs = term_docs; exports.term_stdopts_docs = term_stdopts_docs; exports.term_exits = term_exits; exports.term_envs = term_envs; exports.term_man = term_man; exports.term_man_xrefs = term_man_xrefs; exports.term_args = term_args; exports.term_add_args = term_add_args; exports.$$eval = $$eval; exports.eval_term = eval_term; exports.eval_main = eval_main; exports.eval_choices = eval_choices; exports.eval_env_var = eval_env_var; exports.eval_kind = eval_kind; exports.eval_with_term = eval_with_term; exports.eval_has_choice = eval_has_choice; /* Envs Not a pure module */