#!/usr/bin/env python3
# The idea is for a tool named /tools/foo-bar you mv it to
# /python/tools/foo_bar.py then softlink /tools/shim to /tools/foo-bar.
# /tools/foo-bar then continues to work as an alias for
# /python/tools/foo_bar.py but you get the advantage of formatting
# & code sharing.
import os
import sys

ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
NAME = os.path.basename(sys.argv[0]).replace('-', '_')
NAME = NAME if NAME.endswith('.py') else NAME + '.py'
PATH = os.path.join(ROOT_DIR, 'python', 'tools', NAME)
assert os.path.isfile(PATH), f'Shim target {PATH} does not exist.'
os.execv(PATH, sys.argv)
