I'm building a CLI and want to allow commands to be scoped to a project.<p>I'm trying to decide between:<p>A. `blah edit foo` (familiar...like brew)<p>B. `blah foo edit` (least typing...but project name could clash with command names)<p>C. `blah project foo edit` (explicit...like RESTful paths)<p>D. `blah --project=foo edit`<p>E. `blah project foo --edit`<p>Wondering if there was any guidance on this from the UNIX people. Perhaps scoping should be done using the file system. `cd path/to/project && blah edit`. Like git does with `git --cwd=path/to/project`. Maybe a virtual FS could even be used. Then you wouldn't have to continuously type in the scope with each command. Interesting thinking about how to maintain state in the terminal...thinking about how Python's virtual env bin/activate modifies the shell.<p>EDIT: Found an interesting guide here: https://clig.dev/#subcommands<p>> Either `noun verb` or `verb noun` ordering works, but `noun verb` seems to be more common.
Computer: do action, with these adjustments, in this format, to this destination, excluding these, against these targets...<p>This allows xargs against a list and also pipe to stdout or a file.