about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark-Simulacrum <mark.simulacrum@gmail.com>2016-09-24 21:06:32 -0600
committerMark-Simulacrum <mark.simulacrum@gmail.com>2016-09-24 21:08:29 -0600
commit50dad3f1fd96cd233dd3b331bff0ef54c9cb7d8a (patch)
tree4a0cb30a8585b99aa29225a547f55f4d53684fe8
parent05c2fdd64f3f4acc358b653616de6034eced49b5 (diff)
downloadrust-50dad3f1fd96cd233dd3b331bff0ef54c9cb7d8a.tar.gz
rust-50dad3f1fd96cd233dd3b331bff0ef54c9cb7d8a.zip
Skip binary tidy check when on Windows Linux Subsystem
While it's possible that other linux systems will include "Microsoft" in
their /proc/version, this is deemed unlikely, and since this is a tidy
check, will likely be caught by buildbot/travis either way.
-rw-r--r--src/tools/tidy/src/bins.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/tools/tidy/src/bins.rs b/src/tools/tidy/src/bins.rs
index 876ae404bba..ea274266f1a 100644
--- a/src/tools/tidy/src/bins.rs
+++ b/src/tools/tidy/src/bins.rs
@@ -24,9 +24,20 @@ pub fn check(_path: &Path, _bad: &mut bool) {}
 #[cfg(unix)]
 pub fn check(path: &Path, bad: &mut bool) {
     use std::fs;
+    use std::io::Read;
     use std::process::{Command, Stdio};
     use std::os::unix::prelude::*;
 
+    if let Ok(mut file) = fs::File::open("/proc/version") {
+        let mut contents = String::new();
+        file.read_to_string(&mut contents).unwrap();
+        // Probably on Windows Linux Subsystem, all files will be marked as
+        // executable, so skip checking.
+        if contents.contains("Microsoft") {
+            return;
+        }
+    }
+
     super::walk(path,
                 &mut |path| super::filter_dirs(path) || path.ends_with("src/etc"),
                 &mut |file| {