Correctly reinstall rustfmt on channel change

This commit is contained in:
Mark Rousskov 2020-01-31 12:25:14 -05:00
parent ecde10fc28
commit b613b0cb36
1 changed files with 4 additions and 4 deletions

View File

@ -397,7 +397,7 @@ class RustBuild(object):
if self.rustfmt() and self.rustfmt().startswith(self.bin_root()) and (
not os.path.exists(self.rustfmt())
or self.program_out_of_date(self.rustfmt_stamp())
or self.program_out_of_date(self.rustfmt_stamp(), self.rustfmt_channel)
):
if rustfmt_channel:
tarball_suffix = '.tar.xz' if support_xz() else '.tar.gz'
@ -407,7 +407,7 @@ class RustBuild(object):
self.fix_executable("{}/bin/rustfmt".format(self.bin_root()))
self.fix_executable("{}/bin/cargo-fmt".format(self.bin_root()))
with output(self.rustfmt_stamp()) as rustfmt_stamp:
rustfmt_stamp.write(self.date)
rustfmt_stamp.write(self.date + self.rustfmt_channel)
def _download_stage0_helper(self, filename, pattern, tarball_suffix, date=None):
if date is None:
@ -521,12 +521,12 @@ class RustBuild(object):
"""
return os.path.join(self.bin_root(), '.rustfmt-stamp')
def program_out_of_date(self, stamp_path):
def program_out_of_date(self, stamp_path, extra=""):
"""Check if the given program stamp is out of date"""
if not os.path.exists(stamp_path) or self.clean:
return True
with open(stamp_path, 'r') as stamp:
return self.date != stamp.read()
return (self.date + extra) != stamp.read()
def bin_root(self):
"""Return the binary root directory