git clone [email protected]:jm-janzen/notes-cli.git
./bin/notes [args...]
notes-cli/
├── notes/ # Entrypoint src
│ ├── core/ # Application src
│ │ ├── book/ # Abstraction of notes dir
│ │ ├── commands/ # CLI command scripts (1 per)
│ │ ├── utils/ # Generic helper modules
│ │ ├── cli.py # CLI parser, consumer: command_ctl
│ │ ├── command_ctl.py # Abstraction of commands/*
│ │ └── config.py # Abstraction of config.cfg
│ ├── config.cfg # Application configurations (plain text)
│ └── main.py # Entrypoint
├── README.mkd # This document
└── requirements.txt # Application requirements
main.py vec *argv # Build Book, Config; pass *argv along to CLI
`--> cli.py vec *argv # Build help, usage; parse *argv (check is valid)
`--> command_ctl.py str command, str[] parms # Build commands, parse *argv grammar (check is logical)
`--> commands/<command>.py str[] parms # Execute command using given parms (if any)