5914: Replace custom `xtask::not_bash::fs2` setup with fs_err crate r=matklad a=Veetaha



Co-authored-by: Veetaha <veetaha2@gmail.com>
This commit is contained in:
bors[bot] 2020-08-30 08:27:57 +00:00 committed by GitHub
commit ac4b134c6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 45 deletions

7
Cargo.lock generated
View File

@ -385,6 +385,12 @@ dependencies = [
"toolchain",
]
[[package]]
name = "fs-err"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1a51f8b7158efbe531f7baa74e38e49fbc41239e5d66720bb37ed39c27c241a"
[[package]]
name = "fsevent"
version = "2.0.2"
@ -1875,6 +1881,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"flate2",
"fs-err",
"pico-args",
"proc-macro2",
"quote",

View File

@ -18,4 +18,5 @@ quote = "1.0.2"
ungrammar = "1.1.3"
walkdir = "2.3.1"
write-json = "0.1.0"
fs-err = "2.3"
# Avoid adding more dependencies to this crate

View File

@ -115,7 +115,7 @@ fn replace(&mut self, from: &str, to: &str) -> &mut Patch {
self
}
fn commit(&self) -> Result<()> {
fn commit(&self) -> io::Result<()> {
fs2::write(&self.path, &self.contents)
}
}

View File

@ -4,55 +4,14 @@
cell::RefCell,
env,
ffi::OsString,
io::Write,
io::{self, Write},
path::{Path, PathBuf},
process::{Command, Stdio},
};
use anyhow::{bail, Context, Result};
pub mod fs2 {
use std::{fs, path::Path};
use anyhow::{Context, Result};
pub fn read_dir<P: AsRef<Path>>(path: P) -> Result<fs::ReadDir> {
let path = path.as_ref();
fs::read_dir(path).with_context(|| format!("Failed to read {}", path.display()))
}
pub fn read_to_string<P: AsRef<Path>>(path: P) -> Result<String> {
let path = path.as_ref();
fs::read_to_string(path).with_context(|| format!("Failed to read {}", path.display()))
}
pub fn write<P: AsRef<Path>, C: AsRef<[u8]>>(path: P, contents: C) -> Result<()> {
let path = path.as_ref();
fs::write(path, contents).with_context(|| format!("Failed to write {}", path.display()))
}
pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> Result<u64> {
let from = from.as_ref();
let to = to.as_ref();
fs::copy(from, to)
.with_context(|| format!("Failed to copy {} to {}", from.display(), to.display()))
}
pub fn remove_file<P: AsRef<Path>>(path: P) -> Result<()> {
let path = path.as_ref();
fs::remove_file(path).with_context(|| format!("Failed to remove file {}", path.display()))
}
pub fn remove_dir_all<P: AsRef<Path>>(path: P) -> Result<()> {
let path = path.as_ref();
fs::remove_dir_all(path).with_context(|| format!("Failed to remove dir {}", path.display()))
}
pub fn create_dir_all<P: AsRef<Path>>(path: P) -> Result<()> {
let path = path.as_ref();
fs::create_dir_all(path).with_context(|| format!("Failed to create dir {}", path.display()))
}
}
pub use fs_err as fs2;
#[macro_export]
macro_rules! run {
@ -98,7 +57,7 @@ fn drop(&mut self) {
}
}
pub fn rm_rf(path: impl AsRef<Path>) -> Result<()> {
pub fn rm_rf(path: impl AsRef<Path>) -> io::Result<()> {
let path = path.as_ref();
if !path.exists() {
return Ok(());