Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import glob
  3. import gzip
  4. import logging
  5. import multiprocessing
  6. import os
  7. import re
  8. import sys
  9.  
  10. MODDATE_RE=re.compile("\s*<LastModDate Value=\"(\d+)\".")
  11.  
  12. def update_times(als):
  13. try:
  14. largest_timestamp = 0
  15. with gzip.open(als, 'rb') as xml_file:
  16. xml = xml_file.read()
  17. for timestamp in MODDATE_RE.findall(str(xml), re.DOTALL):
  18. timestamp = int(timestamp)
  19. if timestamp > largest_timestamp:
  20. largest_timestamp = timestamp
  21. if largest_timestamp > 0:
  22. os.utime(als, times=(largest_timestamp, largest_timestamp))
  23. except:
  24. logging.error("ERROR: {}".format(als))
  25. return 0
  26.  
  27. with multiprocessing.Pool(processes=16) as pool:
  28. pool.map(update_times,
  29. glob.iglob("{}/**/*.als".format(sys.argv[1]), recursive=True))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement