Merge branch 'feature/better-man' into 'dev'

Better man

See merge request ligolang/ligo!216
This commit is contained in:
Tom Jack 2019-11-28 12:43:50 +00:00
commit 6c7e1af0c1
2 changed files with 95 additions and 50 deletions

View File

@ -3,8 +3,10 @@ open Trace
open Cli_helpers open Cli_helpers
let main = let main =
let term = Term.(const print_endline $ const "Ligo needs a command. Do ligo --help") in let man =
(term , Term.info "ligo") [ `S "MORE HELP";
`P "Use `$(mname) $(i,COMMAND) --help' for help on a single command." ] in
(Term.(ret (const (`Help (`Auto, None)))), Term.info "ligo" ~man)
let source_file n = let source_file n =
let open Arg in let open Arg in
@ -95,8 +97,8 @@ let compile_file =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ syntax $ display_format $ michelson_code_format) in Term.(const f $ source_file 0 $ entry_point 1 $ syntax $ display_format $ michelson_code_format) in
let cmdname = "compile-contract" in let cmdname = "compile-contract" in
let docs = "Subcommand: compile a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let doc = "Subcommand: compile a contract." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let compile_parameter = let compile_parameter =
let f source_file entry_point expression syntax display_format michelson_format = let f source_file entry_point expression syntax display_format michelson_format =
@ -109,8 +111,8 @@ let compile_parameter =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ syntax $ display_format $ michelson_code_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ syntax $ display_format $ michelson_code_format) in
let cmdname = "compile-parameter" in let cmdname = "compile-parameter" in
let docs = "Subcommand: compile parameters to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which calls a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let doc = "Subcommand: compile parameters to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which calls a contract." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let compile_storage = let compile_storage =
let f source_file entry_point expression syntax display_format michelson_format = let f source_file entry_point expression syntax display_format michelson_format =
@ -123,8 +125,8 @@ let compile_storage =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ expression "STORAGE" 2 $ syntax $ display_format $ michelson_code_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "STORAGE" 2 $ syntax $ display_format $ michelson_code_format) in
let cmdname = "compile-storage" in let cmdname = "compile-storage" in
let docs = "Subcommand: compile an initial storage in ligo syntax to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which originates a contract. See `ligo " ^ cmdname ^ " --help' for a list of options specific to this subcommand." in let doc = "Subcommand: compile an initial storage in ligo syntax to a michelson expression. The resulting michelson expression can be passed as an argument in a transaction which originates a contract." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let dry_run = let dry_run =
let f source_file entry_point storage input amount sender source syntax display_format = let f source_file entry_point storage input amount sender source syntax display_format =
@ -138,8 +140,8 @@ let dry_run =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ expression "STORAGE" 3 $ amount $ sender $ source $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ expression "STORAGE" 3 $ amount $ sender $ source $ syntax $ display_format) in
let cmdname = "dry-run" in let cmdname = "dry-run" in
let docs = "Subcommand: run a smart-contract with the given storage and input." in let doc = "Subcommand: run a smart-contract with the given storage and input." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let run_function = let run_function =
let f source_file entry_point parameter amount sender source syntax display_format = let f source_file entry_point parameter amount sender source syntax display_format =
@ -153,8 +155,8 @@ let run_function =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ amount $ sender $ source $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ expression "PARAMETER" 2 $ amount $ sender $ source $ syntax $ display_format) in
let cmdname = "run-function" in let cmdname = "run-function" in
let docs = "Subcommand: run a function with the given parameter." in let doc = "Subcommand: run a function with the given parameter." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let evaluate_value = let evaluate_value =
let f source_file entry_point amount sender source syntax display_format = let f source_file entry_point amount sender source syntax display_format =
@ -168,8 +170,8 @@ let evaluate_value =
let term = let term =
Term.(const f $ source_file 0 $ entry_point 1 $ amount $ sender $ source $ syntax $ display_format) in Term.(const f $ source_file 0 $ entry_point 1 $ amount $ sender $ source $ syntax $ display_format) in
let cmdname = "evaluate-value" in let cmdname = "evaluate-value" in
let docs = "Subcommand: evaluate a given definition." in let doc = "Subcommand: evaluate a given definition." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let compile_expression = let compile_expression =
let f expression syntax display_format michelson_format = let f expression syntax display_format michelson_format =
@ -184,8 +186,8 @@ let compile_expression =
let term = let term =
Term.(const f $ expression "" 0 $ syntax $ display_format $ michelson_code_format) in Term.(const f $ expression "" 0 $ syntax $ display_format $ michelson_code_format) in
let cmdname = "compile-expression" in let cmdname = "compile-expression" in
let docs = "Subcommand: compile to a michelson value." in let doc = "Subcommand: compile to a michelson value." in
(term , Term.info ~docs cmdname) (term , Term.info ~doc cmdname)
let run ?argv () = let run ?argv () =
Term.eval_choice ?argv main [ Term.eval_choice ?argv main [

View File

@ -3,7 +3,48 @@ open Cli_expect
let%expect_test _ = let%expect_test _ =
(* TODO good? *) (* TODO good? *)
run_ligo_good [] ; run_ligo_good [] ;
[%expect {| Ligo needs a command. Do ligo --help |} ] ; [%expect {|
NAME
ligo
SYNOPSIS
ligo COMMAND ...
MORE HELP
Use `ligo COMMAND --help' for help on a single command.
COMMANDS
compile-contract
Subcommand: compile a contract.
compile-expression
Subcommand: compile to a michelson value.
compile-parameter
Subcommand: compile parameters to a michelson expression. The
resulting michelson expression can be passed as an argument in a
transaction which calls a contract.
compile-storage
Subcommand: compile an initial storage in ligo syntax to a
michelson expression. The resulting michelson expression can be
passed as an argument in a transaction which originates a
contract.
dry-run
Subcommand: run a smart-contract with the given storage and input.
evaluate-value
Subcommand: evaluate a given definition.
run-function
Subcommand: run a function with the given parameter.
OPTIONS
--help[=FMT] (default=auto)
Show this help in format FMT. The value FMT must be one of `auto',
`pager', `groff' or `plain'. With `auto', the format is `pager` or
`plain' whenever the TERM env var is `dumb' or undefined. |} ] ;
run_ligo_good [ "--help" ] ; run_ligo_good [ "--help" ] ;
[%expect {| [%expect {|
@ -13,40 +54,35 @@ let%expect_test _ =
SYNOPSIS SYNOPSIS
ligo COMMAND ... ligo COMMAND ...
Subcommand: compile a contract. See `ligo compile-contract --help' for a list MORE HELP
of options specific to this subcommand. Use `ligo COMMAND --help' for help on a single command.
COMMANDS
compile-contract compile-contract
Subcommand: compile a contract.
Subcommand: compile an initial storage in ligo syntax to a michelson
expression. The resulting michelson expression can be passed as an argument
in a transaction which originates a contract. See `ligo compile-storage
--help' for a list of options specific to this subcommand.
compile-storage
Subcommand: compile parameters to a michelson expression. The resulting
michelson expression can be passed as an argument in a transaction which
calls a contract. See `ligo compile-parameter --help' for a list of options
specific to this subcommand.
compile-parameter
Subcommand: compile to a michelson value.
compile-expression compile-expression
Subcommand: compile to a michelson value.
compile-parameter
Subcommand: compile parameters to a michelson expression. The
resulting michelson expression can be passed as an argument in a
transaction which calls a contract.
Subcommand: evaluate a given definition. compile-storage
evaluate-value Subcommand: compile an initial storage in ligo syntax to a
michelson expression. The resulting michelson expression can be
passed as an argument in a transaction which originates a
contract.
Subcommand: run a function with the given parameter.
run-function
Subcommand: run a smart-contract with the given storage and input.
dry-run dry-run
Subcommand: run a smart-contract with the given storage and input.
evaluate-value
Subcommand: evaluate a given definition.
run-function
Subcommand: run a function with the given parameter.
OPTIONS OPTIONS
--help[=FMT] (default=auto) --help[=FMT] (default=auto)
@ -57,7 +93,7 @@ let%expect_test _ =
run_ligo_good [ "compile-contract" ; "--help" ] ; run_ligo_good [ "compile-contract" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-compile-contract ligo-compile-contract - Subcommand: compile a contract.
SYNOPSIS SYNOPSIS
ligo compile-contract [OPTION]... SOURCE_FILE ENTRY_POINT ligo compile-contract [OPTION]... SOURCE_FILE ENTRY_POINT
@ -97,7 +133,9 @@ let%expect_test _ =
run_ligo_good [ "compile-parameter" ; "--help" ] ; run_ligo_good [ "compile-parameter" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-compile-parameter ligo-compile-parameter - Subcommand: compile parameters to a michelson
expression. The resulting michelson expression can be passed as an
argument in a transaction which calls a contract.
SYNOPSIS SYNOPSIS
ligo compile-parameter [OPTION]... SOURCE_FILE ENTRY_POINT ligo compile-parameter [OPTION]... SOURCE_FILE ENTRY_POINT
@ -141,7 +179,10 @@ let%expect_test _ =
run_ligo_good [ "compile-storage" ; "--help" ] ; run_ligo_good [ "compile-storage" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-compile-storage ligo-compile-storage - Subcommand: compile an initial storage in ligo
syntax to a michelson expression. The resulting michelson expression
can be passed as an argument in a transaction which originates a
contract.
SYNOPSIS SYNOPSIS
ligo compile-storage [OPTION]... SOURCE_FILE ENTRY_POINT ligo compile-storage [OPTION]... SOURCE_FILE ENTRY_POINT
@ -185,7 +226,8 @@ let%expect_test _ =
run_ligo_good [ "dry-run" ; "--help" ] ; run_ligo_good [ "dry-run" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-dry-run ligo-dry-run - Subcommand: run a smart-contract with the given storage
and input.
SYNOPSIS SYNOPSIS
ligo dry-run [OPTION]... SOURCE_FILE ENTRY_POINT PARAMETER_EXPRESSION ligo dry-run [OPTION]... SOURCE_FILE ENTRY_POINT PARAMETER_EXPRESSION
@ -236,7 +278,8 @@ let%expect_test _ =
run_ligo_good [ "run-function" ; "--help" ] ; run_ligo_good [ "run-function" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-run-function ligo-run-function - Subcommand: run a function with the given
parameter.
SYNOPSIS SYNOPSIS
ligo run-function [OPTION]... SOURCE_FILE ENTRY_POINT ligo run-function [OPTION]... SOURCE_FILE ENTRY_POINT
@ -284,7 +327,7 @@ let%expect_test _ =
run_ligo_good [ "evaluate-value" ; "--help" ] ; run_ligo_good [ "evaluate-value" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-evaluate-value ligo-evaluate-value - Subcommand: evaluate a given definition.
SYNOPSIS SYNOPSIS
ligo evaluate-value [OPTION]... SOURCE_FILE ENTRY_POINT ligo evaluate-value [OPTION]... SOURCE_FILE ENTRY_POINT
@ -328,7 +371,7 @@ let%expect_test _ =
run_ligo_good [ "compile-expression" ; "--help" ] ; run_ligo_good [ "compile-expression" ; "--help" ] ;
[%expect {| [%expect {|
NAME NAME
ligo-compile-expression ligo-compile-expression - Subcommand: compile to a michelson value.
SYNOPSIS SYNOPSIS
ligo compile-expression [OPTION]... _EXPRESSION ligo compile-expression [OPTION]... _EXPRESSION