From d5253e169006e4faedbba520e302e49a725190d7 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Tue, 30 Jun 2015 14:21:55 +0200 Subject: [PATCH] Transifex pull: made script more kind when networks fails --- .../src/processing/app/i18n/python/pull.py | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/arduino-core/src/processing/app/i18n/python/pull.py b/arduino-core/src/processing/app/i18n/python/pull.py index 5f46e3065..6d8e5b85d 100644 --- a/arduino-core/src/processing/app/i18n/python/pull.py +++ b/arduino-core/src/processing/app/i18n/python/pull.py @@ -2,11 +2,11 @@ #vim:set fileencoding=utf-8 sw=2 expandtab from transifex import Transifex +import requests +import getpass +import sys def main(): - import getpass - import sys - print 'Use your account to talk with Transifex.' user = raw_input('Username: ') passwd = getpass.getpass('Password: ') @@ -14,18 +14,32 @@ def main(): for lang in sys.argv[1:]: fname = 'Resources_%s.po' % lang - print "Updating %s from Transifex..." % fname, sys.stdout.flush() try: lang = trans.canonical_lang(lang) - trans.pull(lang, fname) + pull(trans, lang, fname) except RuntimeError, e: print e.message continue except IOError, e: print e.strerror continue - print + +def pull(trans, lang, fname): + count = 0 + print "Updating %s from Transifex...\n" % fname, + sys.stdout.flush() + while count < 5: + count += 1 + try: + trans.pull(lang, fname) + return + except requests.exceptions.HTTPError, e: + print " *** Retrying %s from Transifex...\n" % fname, + sys.stdout.flush() + + if count >= 5: + raise Exception("Too many retries") if __name__ == '__main__': main()