diff --git a/src/config.rs b/src/config.rs index bb13d5b..a89f77a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -50,6 +50,15 @@ pub fn accept_disclaimer() -> std::io::Result<()> { Ok(()) } +/// Remove the disclaimer sentinel if it exists. +pub fn reject_disclaimer() -> std::io::Result<()> { + let p = sentinel_path(); + if p.exists() { + std::fs::remove_file(p)?; + } + Ok(()) +} + /// Path to the stale `config.ini` from v0.3.0 and earlier. pub fn stale_config_path() -> PathBuf { exe_dir().join("config.ini") diff --git a/src/main.rs b/src/main.rs index 8e401d0..a9e9bf9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -349,6 +349,7 @@ fn run_disclaimer(terminal: &mut Terminal, app: &mut App) -> Resu } KeyCode::Char('n') | KeyCode::Char('N') => { guard::log_action("LICENSE", "declined", "OK", &app.log_path)?; + crate::config::reject_disclaimer()?; return Ok(Some(false)); } KeyCode::Esc => { @@ -360,6 +361,8 @@ fn run_disclaimer(terminal: &mut Terminal, app: &mut App) -> Resu guard::log_action("LICENSE", detail, "OK", &app.log_path)?; if accepted { crate::config::accept_disclaimer()?; + } else { + crate::config::reject_disclaimer()?; } return Ok(Some(accepted)); }