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