schemobscopy.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import getopt, sys, os, re, shutil
  2. def usage():
  3. print """
  4. usage:
  5. schemobscopy.py -f <fritzing folder> -h <hand drawn schematic folder> -g <generated schematics folder>
  6. in the <parts folder>/svg/core/schematic folder match files from the -h and -g folders
  7. copy the old files into obsolete with a prefix of "0.3.schem" and copy the new files into place
  8. """
  9. def main():
  10. try:
  11. opts, args = getopt.getopt(sys.argv[1:], "h:g:f:", ["hand", "generated", "fritzing"])
  12. except getopt.GetoptError, err:
  13. # print help information and exit:
  14. print str(err) # will print something like "option -a not recognized"
  15. usage()
  16. sys.exit(2)
  17. fritzingDir = None
  18. handDir = None
  19. generatedDir = None
  20. for o, a in opts:
  21. #print o
  22. #print a
  23. if o in ("-h", "--hand"):
  24. handDir = a
  25. elif o in ("-g", "--generated"):
  26. generatedDir = a
  27. elif o in ("-f", "--fritzing"):
  28. fritzingDir = a
  29. else:
  30. print "unhandled option", o
  31. usage()
  32. return
  33. if not fritzingDir:
  34. usage()
  35. return
  36. if not generatedDir:
  37. usage()
  38. return
  39. if not handDir:
  40. usage()
  41. return
  42. for filename in os.listdir(handDir):
  43. copyOne(filename, handDir, fritzingDir)
  44. for filename in os.listdir(generatedDir):
  45. copyOne(filename, generatedDir, fritzingDir)
  46. def copyOne(filename, fromDir, fritzingDir):
  47. schDir = os.path.join(fritzingDir, "parts", "svg", "core", "schematic")
  48. obsDir = os.path.join(fritzingDir, "parts", "svg", "obsolete", "schematic")
  49. try:
  50. shutil.copy(os.path.join(schDir, filename), os.path.join(obsDir, "0.3.schem." + filename))
  51. shutil.copy(os.path.join(fromDir, filename), os.path.join(schDir, filename))
  52. except:
  53. print "unable to copy", filename
  54. if __name__ == "__main__":
  55. main()