#!/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)
