Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn list_filesystems<N: Into<PathBuf>>(&self, pool: N) -> Result<impl Iterator<Item = PathBuf> {
- let mut z = self.zfs_mute();
- z.args(&["list", "-t", "filesystem", "-o", "name", "-Hpr"]);
- z.arg(pool.into().as_os_str());
- debug!(self.logger, "executing"; "cmd" => format_args!("{:?}", z));
- let out = z.output()?;
- if out.status.success() {
- let stdout = String::from_utf8_lossy(&out.stdout);
- ZfsParser::parse(Rule::datasets, &stdout)
- .map(|mut pairs| {
- pairs.next().unwrap().into_inner()
- .map(|pair| {
- debug_assert_eq!(Rule::dataset_name, pair.as_rule());
- PathBuf::from(pair.as_str())
- })
- })
- .map_err(|_| Error::UnknownSoFar(String::from(stdout)))
- } else {
- Err(Error::from_stderr(&out.stderr))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement