| Index: sitescripts/management/bin/installChanges.py |
| =================================================================== |
| --- a/sitescripts/management/bin/installChanges.py |
| +++ b/sitescripts/management/bin/installChanges.py |
| @@ -31,17 +31,17 @@ def chown((uid, gid), dirname, names): |
| os.chown(os.path.join(dirname, name), uid, gid) |
| if (name.endswith('.fcgi') or name.endswith('.sh') or name.endswith('.pl')): |
| os.chmod(os.path.join(dirname, name), 0755) |
| def syncFiles(name, settings, syncState): |
| repo, path = splitRepositoryPath(settings['source']) |
| command = ['hg', 'log', '-R', repo, '-r', 'default', '--template', '{node|short}'] |
| - currentRevision, dummy = subprocess.Popen(command, stdout=subprocess.PIPE).communicate() |
| + currentRevision = subprocess.check_output(command) |
| if not syncState.has_section(name): |
| syncState.add_section(name) |
| if syncState.has_option(name, 'latestRevision') and currentRevision == syncState.get(name, 'latestRevision'): |
| # Already up to date, nothing to do |
| return |
| tempdir = tempfile.mkdtemp(prefix=name) |
| @@ -50,17 +50,17 @@ def syncFiles(name, settings, syncState) |
| '-I', os.path.join(repo, path), |
| '-X', os.path.join(repo, '.hg_archival.txt'), |
| '-X', os.path.join(repo, '.hgtags'), |
| '-X', os.path.join(repo, '.hgignore'), |
| '-X', os.path.join(repo, '.hgsub'), |
| '-X', os.path.join(repo, '.hgsubstate'), |
| tempdir] |
| - subprocess.Popen(command, stdout=subprocess.PIPE).communicate() |
| + subprocess.check_output(command) |
| srcdir = os.path.normpath(os.path.join(tempdir, path)) |
| for relpath in settings['ignore']: |
| abspath = os.path.join(srcdir, relpath) |
| if os.path.commonprefix((abspath, srcdir)) == srcdir and os.path.exists(abspath): |
| shutil.rmtree(abspath) |
| if hasattr(os, 'chown') and settings['user'] and settings['group']: |
| from pwd import getpwnam |
| @@ -77,20 +77,20 @@ def syncFiles(name, settings, syncState) |
| if os.path.commonprefix((abspath, settings['target'])) == settings['target'] and os.path.lexists(abspath): |
| command.append('--exclude') |
| if os.path.isdir(abspath) and not os.path.islink(abspath): |
| command.append(os.path.join(relpath, '')) |
| else: |
| command.append(relpath) |
| command.append(os.path.join(srcdir, '')) |
| command.append(settings['target']) |
| - subprocess.Popen(command, stdout=subprocess.PIPE).communicate() |
| + subprocess.check_output(command) |
| if settings['postsync']: |
| - subprocess.Popen(settings['postsync'], stdout=subprocess.PIPE, shell=True, cwd=settings['target']).communicate() |
| + subprocess.check_output(settings['postsync'], shell=True, cwd=settings['target']) |
| syncState.set(name, 'latestRevision', currentRevision) |
| finally: |
| shutil.rmtree(tempdir, ignore_errors=True) |
| def readSyncSettings(): |
| result = {} |
| for option in get_config().options('filesync'): |