On May 18, 2012, at 11:23 AM, Jared Johnson wrote: > a little OT: 'reject N' seems a little clunky; why not something more > like 'action [reject | add-header | ...]'? > > -Jared
Having a single action argument is less versatile and less obvious than having explicit reject and add-header options . I'd argue it's also more complex to code, test, and document. Further, action arguments are likely to have disparate meanings among plugins and plugin authors. If every plugin that may reject mail has a boolean toggle named 'reject', users will have learned from one plugin everything they need to know to configure any other plugin to not reject mail. They don't need to read POD to understand what a reject argument means for a specific plugin. But they likely will for an action argument. By keeping options simple and explicit, it's easier to understand the code, test the code, and write the documentation. Code that is easy to understand and test is far less likely to have bugs present, or to have bugs introduced in the future. There's several plugins that have something like what you've suggested: plugin action [ add-header | deny | denysoft ] And here's a sampling of the arguments that various plugins use with action: add-header, log, continue, reject, deny, denysoft, accept, delete, add Reject has a simple, explicit, and universal meaning in every plugin, and thus my preference for it. Matt