#!/usr/bin/env python3
# Lint as: python2, python3
# Copyright 2019 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This is a trampoline script to invoke the actual generator script.

import os
import sys

target_script_name = 'generate_controlfiles_CTS_Instant.py'
target_script_path = os.path.abspath(os.path.join(os.path.dirname(__file__),
    '..', '..', 'cros', 'tradefed', target_script_name))
os.execv(target_script_path, sys.argv)
