author Per Lundberg <>
Thu, 26 May 2016 04:16:42 -0500
changeset 477093 74ffb4163f720d00a09055d167a7d6b49056fb83
parent 475330 f85e0eba385cbdd40a2fbc649e57d967d882e437
child 477682 1cf3070fd052a90eb21bbe986f2aaccec8047887
permissions -rwxr-xr-x
servo: Merge #11391 - mach: Redirect stderr to /dev/null when locating Python binary (from perlun:fix/be-more-quiet-when-finding-python-binary); r=mbrubeck - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy --faster` does not report any errors - [X] These changes do not require tests because it only changes the mach build script ---- We already redirect stdout in `mach`, but the problem is that (at least on Windows/MSYS2), the `which` command tends to output things to stderr when failing: ``` $ ./mach build -d which: no python2.7 in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/c/Program Files/Java/jdk1.8.0_66/bin:/c/Python27:/c/Python27/Scripts) ``` This PR silences this noise. Source-Repo: Source-Revision: 7dea7ace1b97ce8a51ab0b0516b8705474213542

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at

# The beginning of this script is both valid shell and valid python,
# such that the script starts with the shell and is reexecuted with
# the right python.
'''which' python2.7 > /dev/null 2> /dev/null && exec python2.7 "$0" "$@" || exec python "$0" "$@"

from __future__ import print_function, unicode_literals

import os
import sys

def main(args):
    topdir = os.path.dirname(sys.argv[0])
    sys.path.insert(0, os.path.join(topdir, "python"))
    import mach_bootstrap
    mach = mach_bootstrap.bootstrap(topdir)

if __name__ == '__main__':