Replace custom not_bash::fs2 setup with fs_err crate

This commit is contained in:
Veetaha 2020-08-29 17:47:13 +03:00
parent 8146700f82
commit 4bc56ebd93
4 changed files with 12 additions and 45 deletions

7
Cargo.lock generated
View file

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

View file

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

View file

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

View file

@ -4,55 +4,14 @@ use std::{
cell::RefCell, cell::RefCell,
env, env,
ffi::OsString, ffi::OsString,
io::Write, io::{self, Write},
path::{Path, PathBuf}, path::{Path, PathBuf},
process::{Command, Stdio}, process::{Command, Stdio},
}; };
use anyhow::{bail, Context, Result}; use anyhow::{bail, Context, Result};
pub mod fs2 { pub use fs_err as 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()))
}
}
#[macro_export] #[macro_export]
macro_rules! run { macro_rules! run {
@ -98,7 +57,7 @@ impl Drop for Pushenv {
} }
} }
pub fn rm_rf(path: impl AsRef<Path>) -> Result<()> { pub fn rm_rf(path: impl AsRef<Path>) -> io::Result<()> {
let path = path.as_ref(); let path = path.as_ref();
if !path.exists() { if !path.exists() {
return Ok(()); return Ok(());