diff --git a/src/tools/tidy/src/bins.rs b/src/tools/tidy/src/bins.rs index 876ae404bbaed..ea274266f1ab2 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| {