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