|  | #!/usr/bin/env python3 | 
|  | # | 
|  | # Wrapper around 'ar' that defaults to deterministic archives | 
|  |  | 
|  | import os | 
|  | import shutil | 
|  | import sys | 
|  |  | 
|  | # calculate path to the real 'ar' | 
|  | path = os.environ['PATH'] | 
|  | path = path.replace(os.path.dirname(sys.argv[0]), '') | 
|  | real_ar = shutil.which('ar', path=path) | 
|  |  | 
|  | if len(sys.argv) == 1: | 
|  | os.execl(real_ar, 'ar') | 
|  |  | 
|  | # modify args to mimic 'ar' configured with --default-deterministic-archives | 
|  | argv = sys.argv | 
|  | if argv[1].startswith('--'): | 
|  | # No modifier given | 
|  | None | 
|  | else: | 
|  | # remove the optional '-' | 
|  | if argv[1][0] == '-': | 
|  | argv[1] = argv[1][1:] | 
|  | if 'U' in argv[1]: | 
|  | sys.stderr.write("ar: non-deterministic mode requested\n") | 
|  | else: | 
|  | argv[1] = argv[1].replace('u', '') | 
|  | argv[1] = 'D' + argv[1] | 
|  |  | 
|  | os.execv(real_ar, argv) |