The name clogi
was originally meant to mean cargo-logistics
, since I had
wanted to create a command line utility that would cater to my abstract, object
oriented brain so I could run things like cargo new class
within a project
and dump a lot of boiler plate code into files and organise them sensibly.
Now, it's more like command-line-logistics
, since this project is basically
a meeting place for command line applications that I want to write.
I haven't finished developing it yet, but they say documenting is a good way of
scoping out a project, so here I am taking a few minutes (that will eventually
turn into hours as I review and edit minute details like the back-tics
surrounding the name clogi
and cargo-logistics
for absolutely no f***ing
reason and replace them with single quotes, only to revert back days later once
I've forgotten why I cared in the first place.)
Anyway, rant over, document begins:
Command
, SubCommand
User invokes the program via clogi <command> <subcommand>
; e.g. clogi todoist task list --project_name "everyday"
.
So we've established that clogi
wraps everything, todoist
is an app within, task
is a model, and list
is an operation. That's how clogi
is structured.
main()
will parse args, and exit if it's not happy.
We then match on the <command>
, and head into the application specific code, which lives in todoist.rs
. All related functionality is contained in the todoist
folder.
Within we have a StructOpt enum, subcommand
. Here we say we're going to do stuff with some model.