All pastes #73354 Raw Edit

Mine

public python v1 · immutable
#73354 ·published 2006-06-27 19:07 UTC
rendered paste body
import pysvnimport osimport zipfileimport reimport shutilimport sysall_addons = ['AbacusLib', 'BabbleLib', 'CrayonLib', 'FuBar', 'FuBar_AmmoFu', 'FuBar_BagFu', 'FuBar_ClockFu', 'FuBar_DebugFu', 'FuBar_DurabilityFu', 'FuBar_ExperienceFu', 'FuBar_ExpRepGlueFu', 'FuBar_HonorFu', 'FuBar_LocationFu', 'FuBar_MicroMenuFu', 'FuBar_MoneyFu', 'FuBar_PerformanceFu', 'FuBar_RestFu', 'FuBar_TopScoreFu', 'FuBar-compat-1.0', 'FuBarPlugin-1.2', 'GloryLib', 'JostleLib', 'TabletLib', 'TouristLib']addons = sys.argv[1:]if not addons:	addons = all_addonsstarter_pack = ['FuBar_AmmoFu', 'FuBar_BagFu', 'FuBar_ClockFu', 'FuBar_DurabilityFu', 'FuBar_ExperienceFu', 'FuBar_HonorFu', 'FuBar_LocationFu', 'FuBar_MoneyFu', 'FuBar_PerformanceFu']starter_pack_version = 0client = pysvn.Client()last_rev = 3362 # keep thismain_author = 'ckknight'for f in os.listdir('.'):	if f.startswith('FuBar-StarterPack-') and f.endswith('.zip'):		os.remove(f)		breakfor dir in addons:	for f in os.listdir('.'):		if f.startswith(dir + '-') and f.endswith('.zip'):			os.remove(f)	for f in os.listdir('.'):		if f.startswith(dir + '-') and f.endswith('-CHANGELOG.txt'):			os.remove(f)		if not os.access(dir, 0):		print 'Checking out', dir		client.checkout('http://svn.wowace.com/root/trunk/' + dir, dir)	else:		print 'Updating', dir		client.update(dir)		minor_version = client.info(dir).commit_revision.number	for dirpath, dirnames, filenames in os.walk(dir):		if ".svn" not in dirpath:			for d in dirnames:				if d != ".svn":					mv = client.info(os.path.join(dirpath, d)).commit_revision.number					if mv > minor_version:						minor_version = mv		if dir in starter_pack:		zip = zipfile.ZipFile('FuBar-StarterPack.zip', os.access('FuBar-StarterPack.zip', 0) and 'a' or 'w', compression=8)				for dirpath, dirnames, filenames in os.walk(dir):			if not '.svn' in dirpath:				for f in filenames:					zip.write(os.path.join(dirpath, f))				zip.close()		if minor_version > starter_pack_version:			starter_pack_version = minor_version		if minor_version < last_rev:		print('No change')		continue		f = file(os.path.join(dir, 'README.txt'))	line = f.readline()	f.close()	major_version = re.match('.*? v(\d+\.\d+) \$.*', line).groups()[0]	print 'Done updating', dir, major_version + '.' + str(minor_version)		changelog = ""	start = client.log(dir, limit=1)[0]['revision'].number	if last_rev > start:		start = last_rev	try:		logs = client.log(dir, revision_end=pysvn.Revision( pysvn.opt_revision_kind.number, -1 ), revision_start=pysvn.Revision( pysvn.opt_revision_kind.number, last_rev ))	except pysvn._pysvn.ClientError:		logs = client.log(dir)	for l in logs:		author = l['author']		m = l['message']		for b in (dir + ' -', dir + ':'):			if m.startswith(b):				m = m[len(b):].strip()				break		if author != main_author:			m = m.strip() + " (" + author + ")"		changelog += m.strip() + '\n'		changelog = major_version + '.' + str(minor_version) + ':\n' + changelog	f = file(dir + '-' + major_version + '.' + str(minor_version) + '-CHANGELOG.txt', 'w')	f.write(changelog)	f.close()		zip = zipfile.ZipFile(dir + '-' + major_version + '.' + str(minor_version) + '.zip', 'w', compression=8)		for dirpath, dirnames, filenames in os.walk(dir):		if not '.svn' in dirpath:			for f in filenames:				if f.endswith('.txt'):					shutil.copy2(os.path.join(dirpath, f), os.path.join(dirpath, f) + '.bak')					p = file(os.path.join(dirpath, f), 'r')					lines = [x.rstrip() for x in p.readlines()]					p.close()					p = file(os.path.join(dirpath, f), 'w')					p.write('\r\n'.join(lines))					p.close()					zip.write(os.path.join(dirpath, f))					shutil.move(os.path.join(dirpath, f) + '.bak', os.path.join(dirpath, f))				else:					zip.write(os.path.join(dirpath, f))		zip.close()if starter_pack_version > 0:	if os.access('FuBar-StarterPack-1.2.' + str(starter_pack_version) + '.zip', 0):		os.remove('FuBar-StarterPack-1.2.' + str(starter_pack_version) + '.zip')	os.rename('FuBar-StarterPack.zip', 'FuBar-StarterPack-1.2.' + str(starter_pack_version) + '.zip')