#!/usr/bin/env python3
# Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

import os
import subprocess
import sys
import utils

SCRIPT = '/google/data/ro/teams/dart/golem/bin/golem4.dart'
DART = os.path.join(utils.THIRD_PARTY, 'dart-sdk', 'bin', 'dart')


def Main():
    args = sys.argv[1:]
    if len(args) != 1 or '--help' in args:
        print(
            'Performance tracking takes exactly one argument, the name for display'
        )
        return 1
    subprocess.check_call([DART, SCRIPT, args[0]])


if __name__ == '__main__':
    sys.exit(Main())
