aboutsummaryrefslogtreecommitdiff
path: root/xtask/src/not_bash.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-02-14 17:56:07 +0000
committerAleksey Kladov <[email protected]>2020-02-14 17:56:07 +0000
commit3f675179e5566514fde2730c0a8b47195a688d6d (patch)
treebfbf6346e0e7240f56b28de22af8eb2c16c9e89a /xtask/src/not_bash.rs
parent705f8820c93277768ddc38a743b1ce02a97a9750 (diff)
Add fs2 module for better error messages
Diffstat (limited to 'xtask/src/not_bash.rs')
-rw-r--r--xtask/src/not_bash.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/xtask/src/not_bash.rs b/xtask/src/not_bash.rs
index 56d6c6c2d..027571b62 100644
--- a/xtask/src/not_bash.rs
+++ b/xtask/src/not_bash.rs
@@ -10,6 +10,29 @@ use std::{
10 10
11use anyhow::{bail, Context, Result}; 11use anyhow::{bail, Context, Result};
12 12
13pub mod fs2 {
14 use std::{fs, path::Path};
15
16 use anyhow::{Context, Result};
17
18 pub fn read_dir<P: AsRef<Path>>(path: P) -> Result<fs::ReadDir> {
19 let path = path.as_ref();
20 fs::read_dir(path).with_context(|| format!("Failed to read {}", path.display()))
21 }
22
23 pub fn write<P: AsRef<Path>, C: AsRef<[u8]>>(path: P, contents: C) -> Result<()> {
24 let path = path.as_ref();
25 fs::write(path, contents).with_context(|| format!("Failed to write {}", path.display()))
26 }
27
28 pub fn copy<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> Result<u64> {
29 let from = from.as_ref();
30 let to = to.as_ref();
31 fs::copy(from, to)
32 .with_context(|| format!("Failed to copy {} to {}", from.display(), to.display()))
33 }
34}
35
13macro_rules! _run { 36macro_rules! _run {
14 ($($expr:expr),*) => { 37 ($($expr:expr),*) => {
15 run!($($expr),*; echo = true) 38 run!($($expr),*; echo = true)