From 784e9ee24d977c99dcb5ba5aef81dae48cb899fb Mon Sep 17 00:00:00 2001 From: Roman Melnikov Date: Wed, 19 Apr 2023 17:46:43 +0800 Subject: [Chore] Handle 'temp_path' as an actual 'Path' instead of 'String' Problem: 'temp_path' and 'lock_path' are handled as 'String'. This can be a problem when the 'temp_path' directory is a symlink on the target system, e.g. this is the case with the default '/tmp' and macOS, where this directory is actually a symlink to '/private/tmp'. Solution: Handle 'temp_path' and 'lock_path' as actual Paths. Also, canonicalize 'temp_path' to avoid canary file path mismatches when checking filesystem events. As a side effect, also update the 'notify' dependency to the latest stable version. --- src/cli.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/cli.rs') diff --git a/src/cli.rs b/src/cli.rs index f259563..9140d6d 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -14,6 +14,7 @@ use self::deploy::{DeployFlake, ParseFlakeError}; use futures_util::stream::{StreamExt, TryStreamExt}; use log::{debug, error, info, warn}; use serde::Serialize; +use std::path::PathBuf; use std::process::Stdio; use thiserror::Error; use tokio::process::Command; @@ -86,7 +87,7 @@ pub struct Opts { confirm_timeout: Option, /// Where to store temporary files (only used by magic-rollback) #[clap(long)] - temp_path: Option, + temp_path: Option, /// Show what will be activated on the machines #[clap(long)] dry_activate: bool, -- cgit v1.2.3