gen-lockedsig-cache 835 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env python
  2. #
  3. # gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir>
  4. #
  5. import os
  6. import sys
  7. import glob
  8. import shutil
  9. import errno
  10. def mkdir(d):
  11. try:
  12. os.makedirs(d)
  13. except OSError as e:
  14. if e.errno != errno.EEXIST:
  15. raise e
  16. if len(sys.argv) < 3:
  17. print("Incorrect number of arguments specified")
  18. sys.exit(1)
  19. sigs = []
  20. with open(sys.argv[1]) as f:
  21. for l in f.readlines():
  22. if ":" in l:
  23. sigs.append(l.split(":")[2].split()[0])
  24. files = set()
  25. for s in sigs:
  26. p = sys.argv[2] + "/" + s[:2] + "/*" + s + "*"
  27. files |= set(glob.glob(p))
  28. p = sys.argv[2] + "/*/" + s[:2] + "/*" + s + "*"
  29. files |= set(glob.glob(p))
  30. for f in files:
  31. dst = f.replace(sys.argv[2], sys.argv[3])
  32. mkdir(os.path.dirname(dst))
  33. os.link(f, dst)