]> git.lizzy.rs Git - rust.git/commitdiff
Correctly reinstall rustfmt on channel change
authorMark Rousskov <mark.simulacrum@gmail.com>
Fri, 31 Jan 2020 17:25:14 +0000 (12:25 -0500)
committerMark Rousskov <mark.simulacrum@gmail.com>
Fri, 31 Jan 2020 17:25:14 +0000 (12:25 -0500)
src/bootstrap/bootstrap.py

index 6737086f6e5b0fab8016be51f10defbafbf4ae9a..1935759a5628e2ad914f2e6fbd3d2a4f1811f484 100644 (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