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