On Fri, Mar 09, 2007 at 11:52:05AM -0800, Michael G Schwern wrote: > Andreas J. Koenig wrote: > >>>>>> On Tue, 6 Mar 2007 19:25:35 -0800, Eric Wilhelm <[EMAIL PROTECTED]> > >>>>>> said: > > > > Thanks for the summary. I must apologize, this answer is going to > > sound a bit violent and rude. > > Andreas, I have trouble imagining you being violent and rude. > > > > Sure can we. If you would let the user use his terminal the way it was > > designed. > > This argument has swayed me back. Every single Unix program will act the > way MakeMaker and Module::Build do if you redirect STDOUT while leaving > STDIN attached to a terminal... unless the author special cases it. And > then you have to learn the quirks of that special cleverness for that > specific app and be surprised in new and interesting ways, such as the tee > example. > > If you did "rm -i * 2> rm.out" you'd be in the same boat. >
There are cases where terminal programs use STDIN and STDOUT in addition to /dev/tty, such as ssh. One can redirect the input and output from the remote host, yet ssh will interact with the user via the tty for passwords, etc. where necessary. This seems like natural behavior. It removes out of band interaction from getting tossed in with the in band data. Instead of trying to hack the tool to do something odd, why not just recommend expect (or equivalents) to interact with M::B where interactivity needs to be automated? That could be considered 'special cleverness', but it maps well to the rest of the unix universe. Maybe that's what you're suggesting already. I've gotten a little lost in this thread in terms of figuring out who is arguing for what and under what circumstances. Austin