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, SubCommandUser 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.