diff --git a/weboob/core/backendscfg.py b/weboob/core/backendscfg.py index 4551e14d..841c3a84 100644 --- a/weboob/core/backendscfg.py +++ b/weboob/core/backendscfg.py @@ -20,6 +20,7 @@ from __future__ import with_statement import stat import os +import sys from ConfigParser import RawConfigParser, DuplicateSectionError from logging import warning @@ -37,11 +38,16 @@ class BackendsConfig(object): try: mode = os.stat(confpath).st_mode except OSError: - os.mknod(confpath, 0600) + if sys.platform == 'win32': + fptr = open(confpath,'w') + fptr.close() + else: + os.mknod(confpath, 0600) else: - if mode & stat.S_IRGRP or mode & stat.S_IROTH: - raise self.WrongPermissions( - u'Weboob will not start until config file %s is readable by group or other users.' % confpath) + if sys.platform != 'win32': + if mode & stat.S_IRGRP or mode & stat.S_IROTH: + raise self.WrongPermissions( + u'Weboob will not start until config file %s is readable by group or other users.' % confpath) def iter_backends(self): config = RawConfigParser() diff --git a/weboob/tools/application/console.py b/weboob/tools/application/console.py index 28ab68b0..7c91f211 100644 --- a/weboob/tools/application/console.py +++ b/weboob/tools/application/console.py @@ -40,8 +40,13 @@ class ConsoleApplication(BaseApplication): CAPS = None # shell escape strings - BOLD = '' - NC = '' # no color + if sys.platform == 'win32': + #workaround to disable bold + BOLD = '' + NC = '' # no color + else: + BOLD = '' + NC = '' # no color stdin = sys.stdin stdout = sys.stdout @@ -356,7 +361,10 @@ class ConsoleApplication(BaseApplication): while True: if v.masked: - line = getpass.getpass(question) + if sys.platform == 'win32': + line = getpass.getpass(str(question)) + else: + line = getpass.getpass(question) else: self.stdout.write(question) self.stdout.flush() diff --git a/weboob/tools/application/formatters/iformatter.py b/weboob/tools/application/formatters/iformatter.py index 37ea8947..13b59c48 100644 --- a/weboob/tools/application/formatters/iformatter.py +++ b/weboob/tools/application/formatters/iformatter.py @@ -21,7 +21,9 @@ from __future__ import with_statement import os import sys import subprocess - +if sys.platform == 'win32': + import WConio + try: import tty, termios except ImportError: @@ -85,7 +87,10 @@ class IFormatter(object): # XXX if stdin is not a tty, it seems that the command fails. if os.isatty(sys.stdout.fileno()) and os.isatty(sys.stdin.fileno()): - self.termrows = int( subprocess.Popen('stty size', shell=True, stdout=subprocess.PIPE).communicate()[0].split()[0]) + if sys.platform == 'win32': + self.termrows = WConio.gettextinfo()[8] + else: + self.termrows = int( subprocess.Popen('stty size', shell=True, stdout=subprocess.PIPE).communicate()[0].split()[0]) def after_format(self, formatted): if self.outfile != sys.stdout: