• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2
3# Copyright (c) 2009 Google Inc. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7import os
8import sys
9import subprocess
10
11PY3 = bytes != str
12
13
14def IsCygwin():
15    # Function copied from pylib/gyp/common.py
16    try:
17        out = subprocess.Popen(
18            "uname", stdout=subprocess.PIPE, stderr=subprocess.STDOUT
19        )
20        stdout, stderr = out.communicate()
21        if PY3:
22            stdout = stdout.decode("utf-8")
23        return "CYGWIN" in str(stdout)
24    except Exception:
25        return False
26
27
28def UnixifyPath(path):
29    try:
30        if not IsCygwin():
31            return path
32        out = subprocess.Popen(
33            ["cygpath", "-u", path], stdout=subprocess.PIPE, stderr=subprocess.STDOUT
34        )
35        stdout, _ = out.communicate()
36        if PY3:
37            stdout = stdout.decode("utf-8")
38        return str(stdout)
39    except Exception:
40        return path
41
42
43# Make sure we're using the version of pylib in this repo, not one installed
44# elsewhere on the system. Also convert to Unix style path on Cygwin systems,
45# else the 'gyp' library will not be found
46path = UnixifyPath(sys.argv[0])
47sys.path.insert(0, os.path.join(os.path.dirname(path), "pylib"))
48import gyp  # noqa: E402
49
50if __name__ == "__main__":
51    sys.exit(gyp.script_main())
52