new method ConsoleApplication.acquire_input() to read stdin friendly

This commit is contained in:
Romain Bignon 2011-07-11 22:18:04 +02:00
commit e731f42cb9
4 changed files with 12 additions and 9 deletions

View file

@ -230,12 +230,7 @@ class Boobmsg(ReplApplication):
"""
receivers, text = self.parse_command_args(line, 2, 1)
if text is None:
if self.interactive:
print 'Reading message content from stdin... Type ctrl-D ' \
'from an empty line to post message.'
text = sys.stdin.read()
if sys.stdin.encoding:
text = text.decode(sys.stdin.encoding)
text = self.acquire_input()
if self.options.skip_empty and not text.strip():
return

View file

@ -77,7 +77,7 @@ class Pastoob(ReplApplication):
The filename can be '-' for reading standard input (pipe).
"""
if not filename or filename == '-':
contents = sys.stdin.read().decode(sys.stdin.encoding or locale.getpreferredencoding())
contents = self.acquire_input()
else:
try:
with codecs.open(filename, encoding=locale.getpreferredencoding()) as fp:

View file

@ -107,7 +107,7 @@ class WeboobCfg(ReplApplication):
print >>sys.stderr, 'Error: backend "%s" does not support accounts management' % backend_name
return 1
mail = sys.stdin.read()
mail = self.acquire_input()
if not backend.confirm_account(mail):
print >>sys.stderr, 'Error: Unable to confirm account creation'
return 1