I don't know about all your other ideas, but 
<https://github.com/c-blake/cligen> is pretty automatic as CLIs go. The `shoe` 
approach of just populating variables still leaves a need for users to specify 
activity. `cligen` just takes that one step further to have the user specify 
the proc instead - then the activity is whatever the proc does.

In taking that one step, it makes it easy for application logic to be agnostic 
with regard to if it is even inside a CLI at all (or if `cligen` is even 
installed at all!). Indeed, one could wrap the very same proc(s) in a CLI or a 
web form or GUI form (for simple procs) discussed briefly in [one of many 
closed 
issues](https://github.com/c-blake/cligen/issues/25#issuecomment-381324475). 
This kind of design could blur the lines between "library", "cli", "web form", 
"GUI" which seems to be the kind of overall vibe I am getting from your post. 
Just one possible direction, of course.

Reply via email to