* protoc: "//nolint: gas" directive after pb generation
Fixes#138
Since we can't add package directives through the protoc
compiler, yet we need to "//nolint: gas" the Go generated
protobuf file, added a script whose purpose is to
go find the "package (\w+)$" declaration after go fmt
was run by protoc.
The competing solutions were more complex and can be
examined by visiting
https://github.com/tendermint/abci/issues/138#issuecomment-352226217
* simplify script
* rewrite script to work on Mac
* Build tags need to come before the package name
and have at least a blank line, between them and
the package, please see
https://golang.org/pkg/go/build/#hdr-Build_Constraints
* fmt.Println doesn't take formatting verbs
* Fix a missing formatting argument to fmt.Printf
Can now run batch which can be tested by:
```shell
echo -e "echo foo\necho blue" | abci-cli batch
```
giving
```shell
I[12-12|07:55:55.513] Starting socketClient
module=abci-client impl=socketClient
-> code: OK
-> data: foo
-> data.hex: 0x666F6F
-> code: OK
-> data: blue
-> data.hex: 0x626C7565
```
Use the single client connection at startup time
for sending over commands instead of shelling out
for every command.
This code fixes the regression from
https://github.com/tendermint/abci/pull/117
which instead used "os/exec".Command with:
"abci-cli <the_command> [args...]"
The purpose of this code is to restore us
back to the state after cobra replace urlfave/cli.
There is still a bit of work to implement Batch
itself, but that should be simpler as a focused
command.
Fixes#133
Ensure that the types in result.go implement both
json.Marshaler and json.Unmarshaler
and thus avoid any accidental deletions of their respective
methods which would then cause surprises at runtime.
This commit adds the basic test command 'abci-cli test' that will
allow developers of server for their own language to continuously test
their implementation.