|  | 
| 4 | 4 | 
 | 
| 5 | 5 | # This file is only a "symlink" to bootstrap.py, all logic should go there. | 
| 6 | 6 | 
 | 
| 7 |  | -import os | 
| 8 |  | -import sys | 
|  | 7 | +# Parts of `bootstrap.py` use the `multiprocessing` module, so this entry point | 
|  | 8 | +# must use the normal `if __name__ == '__main__':` convention to avoid problems. | 
|  | 9 | +if __name__ == '__main__': | 
|  | 10 | +    import os | 
|  | 11 | +    import sys | 
| 9 | 12 | 
 | 
| 10 |  | -# If this is python2, check if python3 is available and re-execute with that | 
| 11 |  | -# interpreter. Only python3 allows downloading CI LLVM. | 
| 12 |  | -# | 
| 13 |  | -# This matters if someone's system `python` is python2. | 
| 14 |  | -if sys.version_info.major < 3: | 
| 15 |  | -    try: | 
| 16 |  | -        os.execvp("py", ["py", "-3"] + sys.argv) | 
| 17 |  | -    except OSError: | 
|  | 13 | +    # If this is python2, check if python3 is available and re-execute with that | 
|  | 14 | +    # interpreter. Only python3 allows downloading CI LLVM. | 
|  | 15 | +    # | 
|  | 16 | +    # This matters if someone's system `python` is python2. | 
|  | 17 | +    if sys.version_info.major < 3: | 
| 18 | 18 |         try: | 
| 19 |  | -            os.execvp("python3", ["python3"] + sys.argv) | 
|  | 19 | +            os.execvp("py", ["py", "-3"] + sys.argv) | 
| 20 | 20 |         except OSError: | 
| 21 |  | -            # Python 3 isn't available, fall back to python 2 | 
| 22 |  | -            pass | 
|  | 21 | +            try: | 
|  | 22 | +                os.execvp("python3", ["python3"] + sys.argv) | 
|  | 23 | +            except OSError: | 
|  | 24 | +                # Python 3 isn't available, fall back to python 2 | 
|  | 25 | +                pass | 
| 23 | 26 | 
 | 
| 24 |  | -rust_dir = os.path.dirname(os.path.abspath(__file__)) | 
| 25 |  | -# For the import below, have Python search in src/bootstrap first. | 
| 26 |  | -sys.path.insert(0, os.path.join(rust_dir, "src", "bootstrap")) | 
|  | 27 | +    rust_dir = os.path.dirname(os.path.abspath(__file__)) | 
|  | 28 | +    # For the import below, have Python search in src/bootstrap first. | 
|  | 29 | +    sys.path.insert(0, os.path.join(rust_dir, "src", "bootstrap")) | 
| 27 | 30 | 
 | 
| 28 |  | -import bootstrap | 
| 29 |  | -bootstrap.main() | 
|  | 31 | +    import bootstrap | 
|  | 32 | +    bootstrap.main() | 
0 commit comments