ar 778 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/env python3
  2. #
  3. # Wrapper around 'ar' that defaults to deterministic archives
  4. import os
  5. import shutil
  6. import sys
  7. # calculate path to the real 'ar'
  8. path = os.environ['PATH']
  9. path = path.replace(os.path.dirname(sys.argv[0]), '')
  10. real_ar = shutil.which('ar', path=path)
  11. if len(sys.argv) == 1:
  12. os.execl(real_ar, 'ar')
  13. # modify args to mimic 'ar' configured with --default-deterministic-archives
  14. argv = sys.argv
  15. if argv[1].startswith('--'):
  16. # No modifier given
  17. None
  18. else:
  19. # remove the optional '-'
  20. if argv[1][0] == '-':
  21. argv[1] = argv[1][1:]
  22. if 'U' in argv[1]:
  23. sys.stderr.write("ar: non-deterministic mode requested\n")
  24. else:
  25. argv[1] = argv[1].replace('u', '')
  26. argv[1] = 'D' + argv[1]
  27. os.execv(real_ar, argv)