and switch to accepting the full path to the answer file. This makes it possible to use it in more situations than just the partition case.
Signed-off-by: Aaron Lauterer <a.laute...@proxmox.com> --- .../src/fetch_plugins/partition.rs | 23 +++++-------------- .../src/fetch_plugins/utils/mod.rs | 13 ++++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/proxmox-fetch-answer/src/fetch_plugins/partition.rs b/proxmox-fetch-answer/src/fetch_plugins/partition.rs index dbe5dda..2557c59 100644 --- a/proxmox-fetch-answer/src/fetch_plugins/partition.rs +++ b/proxmox-fetch-answer/src/fetch_plugins/partition.rs @@ -1,8 +1,8 @@ -use anyhow::{Error, Result}; +use anyhow::Result; use log::info; -use std::{fs::read_to_string, path::Path}; +use std::path::PathBuf; -use crate::fetch_plugins::utils::mount_proxmoxinst_part; +use crate::fetch_plugins::utils::{get_answer_file, mount_proxmoxinst_part}; static ANSWER_FILE: &str = "answer.toml"; @@ -12,21 +12,10 @@ impl FetchFromPartition { /// Returns the contents of the answer file pub fn get_answer() -> Result<String> { info!("Checking for answer file on partition."); - let mount_path = mount_proxmoxinst_part()?; - let answer = Self::get_answer_file(&mount_path)?; + let mut mount_path = PathBuf::from(mount_proxmoxinst_part()?); + mount_path.push(ANSWER_FILE); + let answer = get_answer_file(&mount_path)?; info!("Found answer file on partition."); Ok(answer) } - - /// Searches for answer file and returns contents if found - fn get_answer_file(mount_path: &str) -> Result<String> { - let answer_path = Path::new(mount_path).join(ANSWER_FILE); - match answer_path.try_exists() { - Ok(true) => Ok(read_to_string(answer_path)?), - _ => Err(Error::msg(format!( - "could not find answer file expected at: {}", - answer_path.display() - ))), - } - } } diff --git a/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs b/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs index e5ea4b8..29cb37d 100644 --- a/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs +++ b/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs @@ -1,7 +1,7 @@ use anyhow::{Error, Result}; use log::{info, warn}; use std::{ - fs::{self, create_dir_all}, + fs::{self, create_dir_all, read_to_string}, path::{Path, PathBuf}, process::Command, }; @@ -83,3 +83,14 @@ fn check_if_mounted(target_path: &str) -> Result<bool> { } Ok(false) } + +/// Searches for answer file and returns contents if found +pub fn get_answer_file(path: &PathBuf) -> Result<String> { + match path.try_exists() { + Ok(true) => Ok(read_to_string(path)?), + _ => Err(Error::msg(format!( + "could not find answer file expected at: {}", + path.display() + ))), + } +} -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel