| Index: sitescripts/management/bin/updateExternalFiles.py |
| =================================================================== |
| --- a/sitescripts/management/bin/updateExternalFiles.py |
| +++ b/sitescripts/management/bin/updateExternalFiles.py |
| @@ -23,36 +23,38 @@ from shutil import rmtree |
| def updateExternalFiles(): |
| settings = readSettings() |
| for setting in settings.itervalues(): |
| tempdir = mkdtemp(prefix='external') |
| try: |
| repoPath = setting['targetrepository'] |
| targetPath = os.path.dirname(setting['targetfile']) |
| filename = os.path.basename(setting['targetfile']) |
| - |
| - subprocess.Popen(['hg', 'clone', '-q', '-U', repoPath, tempdir], stdout=subprocess.PIPE).communicate() |
| - subprocess.Popen(['hg', 'up', '-q', '-R', tempdir, '-r', 'default'], stdout=subprocess.PIPE).communicate() |
| - |
| + |
| + subprocess.check_call(['hg', 'clone', '-q', '-U', repoPath, tempdir]) |
| + subprocess.check_call(['hg', 'up', '-q', '-R', tempdir, '-r', 'default']) |
| + |
| path = os.path.join(tempdir, targetPath) |
| if not os.path.exists(path): |
| os.makedirs(path) |
| - |
| + |
| path = os.path.join(path, filename) |
| exists = os.path.exists(path) |
| file = codecs.open(path, 'wb', encoding='utf-8') |
| data = urllib.urlopen(setting['source']).read().decode('utf-8') |
| file.write(data) |
| file.close() |
| message = 'Updated copy of external file %s' |
| if not exists: |
| message = 'Added copy of external file %s' |
| - subprocess.Popen(['hg', 'commit', '-q', '-A', '-R', tempdir, '-u', 'hgbot', '-m', message % filename], stdout=subprocess.PIPE).communicate() |
| - subprocess.Popen(['hg', 'push', '-q', '-R', tempdir], stdout=subprocess.PIPE).communicate() |
| + subprocess.check_call(['hg', 'commit', '-q', '-A', '-R', tempdir, '-u', 'hgbot', '-m', message % filename]) |
| + |
| + # Don't check the result of this call, it will be 1 if nothing needs pushing |
| + subprocess.call(['hg', 'push', '-q', '-R', tempdir]) |
| finally: |
| rmtree(tempdir) |
| def readSettings(): |
| result = {} |
| for option, value in get_config().items('externalFiles'): |
| if option.find('_') < 0: |
| continue |