diff options
Diffstat (limited to 'src/cmd/cloud_init.rs')
-rw-r--r-- | src/cmd/cloud_init.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/cmd/cloud_init.rs b/src/cmd/cloud_init.rs index 3ab4139..615b2a8 100644 --- a/src/cmd/cloud_init.rs +++ b/src/cmd/cloud_init.rs @@ -1,9 +1,18 @@ -use crate::cloudinit::CloudInitConfig; +use crate::cloudinit::{CloudInitConfig, CloudInitError}; use crate::spec::Specification; use log::{debug, info}; use std::path::Path; -pub fn cloud_init(spec: &Specification, dirname: &Path) -> anyhow::Result<()> { +#[derive(Debug, thiserror::Error)] +pub enum CloudInitCommandError { + #[error(transparent)] + CloudInitError(#[from] CloudInitError), + + #[error(transparent)] + IoError(#[from] std::io::Error), +} + +pub fn cloud_init(spec: &Specification, dirname: &Path) -> Result<(), CloudInitCommandError> { info!( "generating cloud-init configuration into {}", dirname.display() @@ -18,7 +27,7 @@ pub fn cloud_init(spec: &Specification, dirname: &Path) -> anyhow::Result<()> { Ok(()) } -pub fn cloud_init_iso(spec: &Specification, iso: &Path) -> anyhow::Result<()> { +pub fn cloud_init_iso(spec: &Specification, iso: &Path) -> Result<(), CloudInitCommandError> { info!("generating cloud-init ISO into {}", iso.display()); let init = CloudInitConfig::from(&spec)?; |