Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. fn list_filesystems<N: Into<PathBuf>>(&self, pool: N) -> Result<impl Iterator<Item = PathBuf> {
  2. let mut z = self.zfs_mute();
  3. z.args(&["list", "-t", "filesystem", "-o", "name", "-Hpr"]);
  4. z.arg(pool.into().as_os_str());
  5. debug!(self.logger, "executing"; "cmd" => format_args!("{:?}", z));
  6. let out = z.output()?;
  7. if out.status.success() {
  8. let stdout = String::from_utf8_lossy(&out.stdout);
  9. ZfsParser::parse(Rule::datasets, &stdout)
  10. .map(|mut pairs| {
  11. pairs.next().unwrap().into_inner()
  12. .map(|pair| {
  13. debug_assert_eq!(Rule::dataset_name, pair.as_rule());
  14. PathBuf::from(pair.as_str())
  15. })
  16. })
  17. .map_err(|_| Error::UnknownSoFar(String::from(stdout)))
  18. } else {
  19. Err(Error::from_stderr(&out.stderr))
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement