Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Categorise options in --help #3339

Closed
jcamiel opened this issue Oct 25, 2024 · 0 comments
Closed

Categorise options in --help #3339

jcamiel opened this issue Oct 25, 2024 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@jcamiel
Copy link
Collaborator

jcamiel commented Oct 25, 2024

The current hurl --help is:

$ hurl --help
Hurl, run and test HTTP requests with plain text

Usage: hurl [OPTIONS] [FILES]...

Arguments:
  [FILES]...  Set the input file to use

Options:
      --aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]>  Use AWS V4 signature authentication in the transfer
      --cacert <FILE>                                         CA certificate to verify peer against (PEM format)
  -E, --cert <CERTIFICATE[:PASSWORD]>                         Client certificate file and password
      --key <KEY>                                             Private key file name
      --color                                                 Colorize output
      --compressed                                            Request compressed response (using deflate or gzip)
      --connect-timeout <SECONDS>                             Maximum time allowed for connection [default: 300]
      --connect-to <HOST1:PORT1:HOST2:PORT2>                  For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead
      --continue-on-error                                     Continue executing requests even if an error occurs
  -b, --cookie <FILE>                                         Read cookies from FILE
  -c, --cookie-jar <FILE>                                     Write cookies to FILE after running the session (only for one session)
      --delay <MILLISECONDS>                                  Sets delay before each request [default: 0]
      --error-format <FORMAT>                                 Control the format of error messages [default: short] [possible values: short, long]
      --file-root <DIR>                                       Set root directory to import files [default: input file directory]
  -L, --location                                              Follow redirects
      --location-trusted                                      Follow redirects but allows sending the name + password to all hosts that the site may redirect to
      --from-entry <ENTRY_NUMBER>                             Execute Hurl file from ENTRY_NUMBER (starting at 1)
      --glob <GLOB>                                           Specify input files that match the given GLOB. Multiple glob flags may be used
  -0, --http1.0                                               Tell Hurl to use HTTP version 1.0
      --http1.1                                               Tell Hurl to use HTTP version 1.1
      --http2                                                 Tell Hurl to use HTTP version 2
      --http3                                                 Tell Hurl to use HTTP version 3
      --ignore-asserts                                        Ignore asserts defined in the Hurl file
  -i, --include                                               Include the HTTP headers in the output
  -k, --insecure                                              Allow insecure SSL connections
      --interactive                                           Turn on interactive mode
  -4, --ipv4                                                  Tell Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6
  -6, --ipv6                                                  Tell Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4
      --jobs <NUM>                                            Maximum number of parallel jobs
      --json                                                  Output each Hurl file result to JSON
      --max-filesize <BYTES>                                  Specify the maximum size (in bytes) of a file to download
      --max-redirs <NUM>                                      Maximum number of redirects allowed, -1 for unlimited redirects [default: 50]
  -m, --max-time <SECONDS>                                    Maximum time allowed for the transfer [default: 300]
  -n, --netrc                                                 Must read .netrc for username and password
      --netrc-file <FILE>                                     Specify FILE for .netrc
      --netrc-optional                                        Use either .netrc or the URL
      --no-color                                              Do not colorize output
      --no-output                                             Suppress output. By default, Hurl outputs the body of the last response
      --noproxy <HOST(S)>                                     List of hosts which do not use proxy
  -o, --output <FILE>                                         Write to FILE instead of stdout
      --parallel                                              Run files in parallel (default in test mode)
      --path-as-is                                            Tell Hurl to not handle sequences of /../ or /./ in the given URL path
  -x, --proxy <[PROTOCOL://]HOST[:PORT]>                      Use proxy on given PROTOCOL/HOST/PORT
      --repeat <NUM>                                          Repeat the input files sequence NUM times, -1 for infinite loop
      --report-html <DIR>                                     Generate HTML report to DIR
      --report-json <DIR>                                     Generate JSON report to DIR
      --report-junit <FILE>                                   Write a JUnit XML report to FILE
      --report-tap <FILE>                                     Write a TAP report to FILE
      --resolve <HOST:PORT:ADDR>                              Provide a custom address for a specific HOST and PORT pair
      --retry <NUM>                                           Maximum number of retries, 0 for no retries, -1 for unlimited retries
      --retry-interval <MILLISECONDS>                         Interval in milliseconds before a retry [default: 1000]
      --ssl-no-revoke                                         (Windows) Tell Hurl to disable certificate revocation checks
      --test                                                  Activate test mode (use parallel execution)
      --to-entry <ENTRY_NUMBER>                               Execute Hurl file to ENTRY_NUMBER (starting at 1)
      --unix-socket <PATH>                                    (HTTP) Connect through this Unix domain socket, instead of using the network
  -A, --user-agent <NAME>                                     Specify the User-Agent string to send to the HTTP server
  -u, --user <USER:PASSWORD>                                  Add basic Authentication header to each request
      --variable <NAME=VALUE>                                 Define a variable
      --variables-file <FILE>                                 Define a properties file in which you define your variables
  -v, --verbose                                               Turn on verbose
      --very-verbose                                          Turn on verbose output, including HTTP response and libcurl logs
  -h, --help                                                  Print help
  -V, --version                                               Print version

Given the number of options, it could be useful to organise options by categories:

$ hurl --help
Hurl, run and test HTTP requests with plain text

Usage: hurl [OPTIONS] [FILES]...

Arguments:
  [FILES]...  Set the input file to use

Options:
  -h, --help     Print help
  -V, --version  Print version

HTTP options:
      --aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]>  Use AWS V4 signature authentication in the transfer
      --cacert <FILE>                                         CA certificate to verify peer against (PEM format)
  -E, --cert <CERTIFICATE[:PASSWORD]>                         Client certificate file and password
      --key <KEY>                                             Private key file name
      --compressed                                            Request compressed response (using deflate or gzip)
      --connect-timeout <SECONDS>                             Maximum time allowed for connection [default: 300]
      --connect-to <HOST1:PORT1:HOST2:PORT2>                  For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead
  -L, --location                                              Follow redirects
      --location-trusted                                      Follow redirects but allows sending the name + password to all hosts that the site may redirect to
  -0, --http1.0                                               Tell Hurl to use HTTP version 1.0
      --http1.1                                               Tell Hurl to use HTTP version 1.1
      --http2                                                 Tell Hurl to use HTTP version 2
      --http3                                                 Tell Hurl to use HTTP version 3
  -k, --insecure                                              Allow insecure SSL connections
  -4, --ipv4                                                  Tell Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6
  -6, --ipv6                                                  Tell Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4
      --max-filesize <BYTES>                                  Specify the maximum size (in bytes) of a file to download
      --max-redirs <NUM>                                      Maximum number of redirects allowed, -1 for unlimited redirects [default: 50]
  -m, --max-time <SECONDS>                                    Maximum time allowed for the transfer [default: 300]
  -x, --proxy <[PROTOCOL://]HOST[:PORT]>                      Use proxy on given PROTOCOL/HOST/PORT
      --resolve <HOST:PORT:ADDR>                              Provide a custom address for a specific HOST and PORT pair
      --ssl-no-revoke                                         (Windows) Tell Hurl to disable certificate revocation checks
      --unix-socket <PATH>                                    (HTTP) Connect through this Unix domain socket, instead of using the network
  -A, --user-agent <NAME>                                     Specify the User-Agent string to send to the HTTP server
  -u, --user <USER:PASSWORD>                                  Add basic Authentication header to each request

Output:
      --color                  Colorize output
      --error-format <FORMAT>  Control the format of error messages [default: short] [possible values: short, long]
  -i, --include                Include the HTTP headers in the output
      --json                   Output each Hurl file result to JSON
      --no-color               Do not colorize output
      --no-output              Suppress output. By default, Hurl outputs the body of the last response
  -o, --output <FILE>          Write to FILE instead of stdout

Run options:
      --continue-on-error              Continue executing requests even if an error occurs
      --delay <MILLISECONDS>           Sets delay before each request [default: 0]
      --from-entry <ENTRY_NUMBER>      Execute Hurl file from ENTRY_NUMBER (starting at 1)
      --ignore-asserts                 Ignore asserts defined in the Hurl file
      --interactive                    Turn on interactive mode
      --jobs <NUM>                     Maximum number of parallel jobs
      --noproxy <HOST(S)>              List of hosts which do not use proxy
      --parallel                       Run files in parallel (default in test mode)
      --path-as-is                     Tell Hurl to not handle sequences of /../ or /./ in the given URL path
      --repeat <NUM>                   Repeat the input files sequence NUM times, -1 for infinite loop
      --retry <NUM>                    Maximum number of retries, 0 for no retries, -1 for unlimited retries
      --retry-interval <MILLISECONDS>  Interval in milliseconds before a retry [default: 1000]
      --test                           Activate test mode (use parallel execution)
      --to-entry <ENTRY_NUMBER>        Execute Hurl file to ENTRY_NUMBER (starting at 1)
      --variable <NAME=VALUE>          Define a variable
      --variables-file <FILE>          Define a properties file in which you define your variables

Others:
  -b, --cookie <FILE>      Read cookies from FILE
  -c, --cookie-jar <FILE>  Write cookies to FILE after running the session (only for one session)
      --file-root <DIR>    Set root directory to import files [default: input file directory]
      --glob <GLOB>        Specify input files that match the given GLOB. Multiple glob flags may be used
  -n, --netrc              Must read .netrc for username and password
      --netrc-file <FILE>  Specify FILE for .netrc
      --netrc-optional     Use either .netrc or the URL
  -v, --verbose            Turn on verbose
      --very-verbose       Turn on verbose output, including HTTP response and libcurl logs

Report:
      --report-html <DIR>    Generate HTML report to DIR
      --report-json <DIR>    Generate JSON report to DIR
      --report-junit <FILE>  Write a JUnit XML report to FILE
      --report-tap <FILE>    Write a TAP report to FILE
@jcamiel jcamiel added the enhancement New feature or request label Oct 25, 2024
@jcamiel jcamiel linked a pull request Oct 25, 2024 that will close this issue
@jcamiel jcamiel added this to the 6.0.0 milestone Oct 25, 2024
@jcamiel jcamiel closed this as completed Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant