summaryrefslogtreecommitdiff
path: root/src/cmd/cloud_init.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/cloud_init.rs')
-rw-r--r--src/cmd/cloud_init.rs15
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)?;