#!/usr/bin/env python
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import imp
import os
import sys
import urllib

# Directory path in which to save bootstrap files.
BOOTSTRAPPED_FILES_DIR = 'support/bootstrap_files'


def bootstrapIfNeeded(module_name, module_path, module_deps_url):
  """Ensures that the given module_name is available, grab from URL if not."""
  try:
    imp.find_module(module_name)
    return
  except ImportError:
    sys.path.append(os.path.join(os.path.dirname(__file__),
                                 BOOTSTRAPPED_FILES_DIR,
                                 module_path))
    try:
      imp.find_module(module_name)
      return
    except ImportError:
      bootstrap_txt = urllib.urlopen('http://src.chromium.org/viewvc/chrome/' +
                                     'trunk/src/tools/telemetry/tools/' +
                                     'telemetry_bootstrap.py').read()
      bootstrap = imp.new_module('bootstrap')
      exec bootstrap_txt in bootstrap.__dict__
      bootstrap.DownloadDepsURL(os.path.join(os.path.dirname(__file__),
                                             BOOTSTRAPPED_FILES_DIR),
                                module_deps_url)


if __name__ == '__main__':
  bootstrapIfNeeded('gpu_tests', 'src/content/test/gpu',
                    'http://src.chromium.org/viewvc/chrome/trunk/src/content/' +
                    'test/gpu/gpu_tests/bootstrap_deps')
  import gpu_tests
  from telemetry.page import page_test_runner

  import page_sets # pylint: disable=F0401
  page_set_filenames = page_sets.GetAllPageSetFilenames()

  sys.exit(page_test_runner.Main(os.path.dirname(__file__), page_set_filenames))
