Merge pull request #1691 from fermyon/create-woring-dir
Create working dir if it does not exist
This commit is contained in:
commit
69c13c7bbd
|
@ -125,11 +125,13 @@ impl UpCommand {
|
|||
}
|
||||
}
|
||||
|
||||
let working_dir_holder = match &self.tmp {
|
||||
None => WorkingDirectory::Temporary(TempDir::with_prefix("spinup-")?),
|
||||
Some(d) => WorkingDirectory::Given(d.to_owned()),
|
||||
};
|
||||
let working_dir = working_dir_holder.path().canonicalize()?;
|
||||
// Get working dir holder and hold on to it for the rest of the function.
|
||||
// If the working dir is a temporary dir it will be deleted on drop.
|
||||
let working_dir_holder = self.get_canonical_working_dir()?;
|
||||
let working_dir = working_dir_holder
|
||||
.path()
|
||||
.canonicalize()
|
||||
.context("Could not canonicalize working directory")?;
|
||||
|
||||
let mut locked_app = match &app_source {
|
||||
AppSource::None => bail!("Internal error - should have shown help"),
|
||||
|
@ -157,6 +159,22 @@ impl UpCommand {
|
|||
self.run_trigger(trigger_cmd, Some(run_opts)).await
|
||||
}
|
||||
|
||||
fn get_canonical_working_dir(&self) -> Result<WorkingDirectory, anyhow::Error> {
|
||||
let working_dir_holder = match &self.tmp {
|
||||
None => WorkingDirectory::Temporary(TempDir::with_prefix("spinup-")?),
|
||||
Some(d) => WorkingDirectory::Given(d.to_owned()),
|
||||
};
|
||||
if !working_dir_holder.path().exists() {
|
||||
std::fs::create_dir_all(working_dir_holder.path()).with_context(|| {
|
||||
format!(
|
||||
"Could not create working directory '{}'",
|
||||
working_dir_holder.path().display()
|
||||
)
|
||||
})?;
|
||||
}
|
||||
Ok(working_dir_holder)
|
||||
}
|
||||
|
||||
async fn run_trigger(
|
||||
self,
|
||||
trigger_cmd: Vec<String>,
|
||||
|
|
Loading…
Reference in New Issue