droid.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # usage:
  2. # droid.py -d <directory>
  3. #
  4. # <directory> is a folder, with subfolders, containing .svg files. In each svg file in the directory or its children
  5. # replace 'Droid Sans' with DroidSans
  6. import getopt, sys, os, re
  7. def usage():
  8. print """
  9. usage:
  10. droid.py -d [directory]
  11. directory is a folder containing .svg files.
  12. In each svg file in the directory or its subfolders,
  13. replace 'Droid Sans' with DroidSans.
  14. """
  15. def main():
  16. try:
  17. opts, args = getopt.getopt(sys.argv[1:], "hd:", ["help", "directory"])
  18. except getopt.GetoptError, err:
  19. # print help information and exit:
  20. print str(err) # will print something like "option -a not recognized"
  21. usage()
  22. sys.exit(2)
  23. outputDir = None
  24. for o, a in opts:
  25. #print o
  26. #print a
  27. if o in ("-d", "--directory"):
  28. outputDir = a
  29. elif o in ("-h", "--help"):
  30. usage()
  31. sys.exit(2)
  32. else:
  33. assert False, "unhandled option"
  34. if(not(outputDir)):
  35. usage()
  36. sys.exit(2)
  37. for root, dirs, files in os.walk(outputDir, topdown=False):
  38. for filename in files:
  39. if (filename.endswith(".svg")):
  40. infile = open(os.path.join(root, filename), "r")
  41. svg = infile.read();
  42. infile.close();
  43. svg1 = svg.replace("'Droid Sans'", "DroidSans");
  44. svg2 = svg1.replace("Droid Sans", "DroidSans");
  45. svg3 = svg2.replace("'DroidSans'", "DroidSans");
  46. if (len(svg3) != len(svg)):
  47. outfile = open(os.path.join(root, filename), "w")
  48. outfile.write(svg3);
  49. outfile.close()
  50. print "{0}".format(os.path.join(root, filename))
  51. if __name__ == "__main__":
  52. main()