kitchen/maintainers/sync-copied-files.py

57 lines
2.0 KiB
Python
Executable File

#!/usr/bin/python -tt
import os
import sys
import time
import urlgrabber
from hashlib import sha1
files = {
'kitchen/pycompat27/_subprocess.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/subprocess.py',
'tests/test_subprocess.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/test/test_subprocess.py',
'tests/test_defaultdict.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/test/test_defaultdict.py',
'kitchen/pycompat24/base64/_base64.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/base64.py',
'tests/test_base64.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/test/test_base64.py',
'tests/subprocessdata/sigchild_ignore.py': 'http://hg.python.org/cpython/raw-file/2.7/Lib/test/subprocessdata/sigchild_ignore.py',
}
if __name__ == '__main__':
os.chdir('sync')
for filename in files:
base_filename = os.path.basename(filename)
base_upstream_filename = os.path.basename(files[filename])
modname = os.path.splitext(base_upstream_filename)[0]
if not os.path.exists(modname):
os.mkdir(modname)
sp = open(os.path.join('..', filename), 'r')
sp_sum = sha1(sp.read()).hexdigest()
sp_sum_line = '%s\n' % sp_sum
record = open('%s/record' % modname, 'w')
record.writelines(sp_sum_line)
record.close()
os.chdir(modname)
urlgrabber.urlgrab(files[filename])
sp = open(base_upstream_filename)
sp_sum = sha1(sp.read()).hexdigest()
sp_sum_line = '%s\n' % sp_sum
record = open('record', 'r')
if sp_sum_line in record:
os.remove(base_upstream_filename)
os.chdir('..')
continue
retrieved_at = int(time.time())
new_name = '%s-%s' % (retrieved_at, base_upstream_filename)
os.rename(base_upstream_filename, new_name)
print 'New %s found: %s' % (base_upstream_filename, new_name)
record = open('record', 'a')
record.writelines(sp_sum_line)
record.close()
os.chdir('..')
sys.exit(0)