[bisq-network/bisq] Use posix-style CLI opts, provide method help (#5081)

Stan notifications at github.com
Thu Jan 14 14:42:20 CET 2021


Posix-style method opts replace the formerly ambiguous, positional method params in the CLI.

This change also adds new api `CoreHelpService`, for serving method  specific help from the server.  (Help text is defined on the server to avoid duplicating it when the api starts serving RESTful clients.)

- Add `CoreHelpService` to serve method help in man page format.

- Add some method help docs (man pages) to core's resources: `createoffer`, `takeoffer`, and several no-arg methods.
  
- Add `gRPC` `CoreHelpService` stubs to CLI.
  
- Move CLI method enum to its own class to help reduce file-size of growing `CliMain` class.

- Add CLI method specific posix-style option parsers.  Opts are parsed by the `joptsimple` lib, adding much needed client side validation to `bisq-cli` commands.

- Adjust CLI to new posix-style opts, and method help service.

- Delete uneeded `NegativeNumberOptions` class because `joptsimple` correctly handles negative posix style opt values (joptsimple was treating negative param values as opt labels).

- Adjust `bats` mainnet smoke test to new posix-style CLI opts.
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/5081

-- Commit Summary --

  * Add new CoreHelpService and method help docs
  * Add CoreHelpService gRPC stubs and test case
  * Add posix-style api method option parsers
  * Move CLI method enum to it's own class
  * Change CLI opts to posix-style
  * Remove deprecated NegativeNumberOptions

-- File Changes --

    M apitest/scripts/mainnet-test.sh (26)
    A apitest/src/test/java/bisq/apitest/method/GetMethodHelpTest.java (65)
    M apitest/src/test/java/bisq/apitest/method/MethodTest.java (10)
    M apitest/src/test/java/bisq/apitest/scenario/StartupTest.java (8)
    M cli/src/main/java/bisq/cli/CliMain.java (628)
    M cli/src/main/java/bisq/cli/GrpcStubs.java (3)
    A cli/src/main/java/bisq/cli/Method.java (56)
    D cli/src/main/java/bisq/cli/NegativeNumberOptions.java (97)
    A cli/src/main/java/bisq/cli/opts/AbstractMethodOptionParser.java (59)
    A cli/src/main/java/bisq/cli/opts/ArgumentList.java (123)
    A cli/src/main/java/bisq/cli/opts/CancelOfferOptionParser.java (52)
    A cli/src/main/java/bisq/cli/opts/CreateOfferOptionParser.java (140)
    A cli/src/main/java/bisq/cli/opts/CreatePaymentAcctOptionParser.java (63)
    A cli/src/main/java/bisq/cli/opts/GetAddressBalanceOptionParser.java (52)
    A cli/src/main/java/bisq/cli/opts/GetBalanceOptionParser.java (43)
    A cli/src/main/java/bisq/cli/opts/GetOfferOptionParser.java (52)
    A cli/src/main/java/bisq/cli/opts/GetOffersOptionParser.java (64)
    A cli/src/main/java/bisq/cli/opts/GetPaymentAcctFormOptionParser.java (53)
    A cli/src/main/java/bisq/cli/opts/GetTradeOptionParser.java (62)
    A cli/src/main/java/bisq/cli/opts/GetTransactionOptionParser.java (52)
    A cli/src/main/java/bisq/cli/opts/MethodOpts.java (26)
    A cli/src/main/java/bisq/cli/opts/OptLabel.java (51)
    A cli/src/main/java/bisq/cli/opts/RegisterDisputeAgentOptionParser.java (64)
    A cli/src/main/java/bisq/cli/opts/RemoveWalletPasswordOptionParser.java (52)
    A cli/src/main/java/bisq/cli/opts/SendBsqOptionParser.java (73)
    A cli/src/main/java/bisq/cli/opts/SendBtcOptionParser.java (82)
    A cli/src/main/java/bisq/cli/opts/SetTxFeeRateOptionParser.java (53)
    A cli/src/main/java/bisq/cli/opts/SetWalletPasswordOptionParser.java (61)
    A cli/src/main/java/bisq/cli/opts/SimpleMethodOptionParser.java (30)
    A cli/src/main/java/bisq/cli/opts/TakeOfferOptionParser.java (73)
    A cli/src/main/java/bisq/cli/opts/UnlockWalletOptionParser.java (65)
    A cli/src/main/java/bisq/cli/opts/WithdrawFundsOptionParser.java (70)
    M core/src/main/java/bisq/core/api/CoreApi.java (13)
    A core/src/main/java/bisq/core/api/CoreHelpService.java (103)
    A core/src/main/resources/help/createoffer-help.txt (64)
    A core/src/main/resources/help/getfundingaddresses-help.txt (17)
    A core/src/main/resources/help/getpaymentaccts-help.txt (17)
    A core/src/main/resources/help/getpaymentmethods-help.txt (17)
    A core/src/main/resources/help/gettxfeerate-help.txt (17)
    A core/src/main/resources/help/getunusedbsqaddress-help.txt (17)
    A core/src/main/resources/help/getversion-help.txt (17)
    A core/src/main/resources/help/lockwallet-help.txt (17)
    A core/src/main/resources/help/takeoffer-help.txt (35)
    A core/src/main/resources/help/unsettxfeerate-help.txt (17)
    A daemon/src/main/java/bisq/daemon/grpc/GrpcHelpService.java (56)
    M daemon/src/main/java/bisq/daemon/grpc/GrpcServer.java (2)
    M proto/src/main/proto/grpc.proto (17)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/5081.patch
https://github.com/bisq-network/bisq/pull/5081.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/5081
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20210114/02e4cb5a/attachment.htm>


More information about the bisq-github mailing list