#!/bin/python
# 
#  xfontsize.py
#  Python
#  
#  Created by chapado on 2008-07-24.
# 
#  Modifies all font sizes for a particular theme by editing the Font.xml
#  file.

import fileinput, sys, os, re, string

def modifyfont(fontfile, fontdelta):
	fontfile = os.path.join(os.getcwd(), fontfile)
	fontdelta = str(fontdelta)
	sizetag = re.compile("(.?<size)>([0-9]{2})</size>", re.I)
	for line in fileinput.input(fontfile, inplace=1):
		if re.search(sizetag, line) != None:
			oldsize = re.sub(sizetag, "\\2", line)
			oldsize = int(oldsize)
			fontdelta = int(fontdelta)
			newsize = oldsize + fontdelta
			#line = "<size>" + str(newsize) + "</size>"
			line = re.sub(sizetag, "\\1>" + str(newsize) + "</size>", line)
			if '\n' in line:
				line = line[:-1]
			print line
		else:
			if '\n' in line:
				line = line[:-1]
			print line

def main():
	try:
		modifyfont(sys.argv[1], sys.argv[2])
	except IndexError:
		print "Usage: %s [font xml file] [fontsize change]\nExample:\n\t\t%s Font.xml -10 \t #decreases fontsize by 10\n\t\t%s Font.xml 10 \t #increases font size by 10" % (os.path.basename(sys.argv[0]), os.path.basename(sys.argv[0]), os.path.basename(sys.argv[0]))
		sys.exit(2)


if __name__ == '__main__':
	main()
	sys.exit(0)