Go to file
Netscape Navigator a498bf0c9e Begin building message parser 2020-10-05 08:07:43 -05:00
project Begin building message parser 2020-10-05 08:07:43 -05:00
.gitignore Remove pigeon.exe from source control 2020-09-27 19:15:00 -05:00
LICENSE Hello, world! 2020-08-02 13:59:32 -05:00
README.md Begin building message parser 2020-10-05 08:07:43 -05:00
build.sh Start moving stuff into `/testdata` 2020-10-04 15:19:28 -05:00
coverage.sh Begin building message parser 2020-10-05 08:07:43 -05:00
fixture.pgn Begin building message parser 2020-10-05 08:07:43 -05:00
tests.sh Begin building message parser 2020-10-05 08:07:43 -05:00

README.md

Pigeon CLI

A single executable to manage a Pigeon node.

Project Status

Don't use the Go version yet. If you want something stable, there is a Ruby version that is feature complete.

Setup

By default, data is stored in ~/.pigeon. You can override this value by specifying a PIGEON_PATH ENV var.

Help Wanted

Want to get involved? Below are a few things I need help with.

Email contact@vaporsfot.xyz if you have any questions.

  • Writing a BNF grammar for message parsing
  • Test coverage increases
  • Manual QA of features and edge cases
  • Cross-compiling windows binaries
  • General Golang help (I am a Golang novice- project structure could be improved)

TODO

CURRENT TASK: Write a message parser.

  • Add a real testing lib to DRY things up.
  • Get a good CI system going? Run tests at PR time, provide prebuilt binaries, prevent coverage slips, etc..
  • Add a transact() helper to ensure all transactions are closed out.
  • Switch to SQLX for extra sanity.
  • Write docs for all CLI commands / args AFTER completion.
  • Finish all the things below:
Done? Noun Verb Flag / arg 1 Flag 2
blob remove mhash
bundle ingest
message show message mhash
message find --all
message find --last
draft create
draft publish
draft show
draft update --key=? --value=?
bundle create
X blob find
X blob add file path
X blob add STDIO pipe
X peer untrack peer mhash
X peers list
X peer block peer mhash
X peer follow peer mhash
X identity show
X identity create
X help
X version

Run Tests

Without coverage:

./tests.sh

With coverage:

./coverage.sh

Build Project

./build.sh