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