diff options
Diffstat (limited to 'src/cmd/cloud_init.rs')
-rw-r--r-- | src/cmd/cloud_init.rs | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/src/cmd/cloud_init.rs b/src/cmd/cloud_init.rs index 615b2a8..a9b3588 100644 --- a/src/cmd/cloud_init.rs +++ b/src/cmd/cloud_init.rs @@ -12,26 +12,21 @@ pub enum CloudInitCommandError { IoError(#[from] std::io::Error), } -pub fn cloud_init(spec: &Specification, dirname: &Path) -> Result<(), CloudInitCommandError> { - info!( - "generating cloud-init configuration into {}", - dirname.display() - ); - - let init = CloudInitConfig::from(&spec)?; - - debug!("creating directory {}", dirname.display()); - std::fs::create_dir_all(dirname)?; - init.create_dir(dirname)?; - - Ok(()) -} - -pub fn cloud_init_iso(spec: &Specification, iso: &Path) -> Result<(), CloudInitCommandError> { - info!("generating cloud-init ISO into {}", iso.display()); - - let init = CloudInitConfig::from(&spec)?; - init.create_iso(iso)?; +pub fn cloud_init(specs: &[Specification], dirname: &Path) -> Result<(), CloudInitCommandError> { + for spec in specs { + let dirname = dirname.join(&spec.name); + info!( + "generating cloud-init configuration for {} into {}", + spec.name, + dirname.display() + ); + + let init = CloudInitConfig::from(&spec)?; + + debug!("creating directory {}", dirname.display()); + std::fs::create_dir_all(&dirname)?; + init.create_dir(&dirname)?; + } Ok(()) } |