Print a better error message when rustup is too old

This commit is contained in:
Simon Sapin 2017-11-27 23:18:54 +01:00
parent 2f941d8450
commit a3339f97c3

View file

@ -14,6 +14,7 @@ import itertools
import locale import locale
import os import os
from os import path from os import path
import re
import contextlib import contextlib
import subprocess import subprocess
from subprocess import PIPE from subprocess import PIPE
@ -322,6 +323,12 @@ class CommandBase(object):
def call_rustup_run(self, args, **kwargs): def call_rustup_run(self, args, **kwargs):
if self.config["tools"]["use-rustup"]: if self.config["tools"]["use-rustup"]:
version_line = subprocess.check_output(["rustup" + BIN_SUFFIX, "--version"])
version = tuple(map(int, re.match("rustup (\d+)\.(\d+)\.(\d+)", version_line).groups()))
if version < (1, 8, 0):
print "rustup is at version %s.%s.%s, Servo requires 1.8.0 or more recent." % version
print "Try running 'rustup self update'."
return 1
args = ["rustup" + BIN_SUFFIX, "run", "--install", self.toolchain()] + args args = ["rustup" + BIN_SUFFIX, "run", "--install", self.toolchain()] + args
try: try:
return call(args, **kwargs) return call(args, **kwargs)