ops: factor out current_provenance() helper

The POC_PROVENANCE env var lookup was duplicated in upsert,
delete_node, and rename_node. Extract to a single function.

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2026-03-17 18:06:06 -04:00
parent 199c415cf2
commit 1629a2c4e3

View file

@ -7,6 +7,13 @@ use super::types::*;
use std::collections::{HashMap, HashSet};
/// Provenance from POC_PROVENANCE env var, defaulting to "manual".
fn current_provenance() -> String {
Provenance::from_env()
.map(|p| p.label().to_string())
.unwrap_or_else(|| "manual".to_string())
}
impl Store {
/// Add or update a node (appends to log + updates cache).
/// Holds StoreLock across refresh + check + write to prevent duplicate UUIDs.
@ -37,9 +44,7 @@ impl Store {
/// Provenance is determined by the POC_PROVENANCE env var if set,
/// otherwise defaults to Manual.
pub fn upsert(&mut self, key: &str, content: &str) -> Result<&'static str, String> {
let prov = Provenance::from_env()
.map(|p| p.label().to_string())
.unwrap_or_else(|| "manual".to_string());
let prov = current_provenance();
self.upsert_provenance(key, content, &prov)
}
@ -76,9 +81,7 @@ impl Store {
let _lock = StoreLock::acquire()?;
self.refresh_nodes()?;
let prov = Provenance::from_env()
.map(|p| p.label().to_string())
.unwrap_or_else(|| "manual".to_string());
let prov = current_provenance();
let node = self.nodes.get(key)
.ok_or_else(|| format!("No node '{}'", key))?;
@ -115,9 +118,7 @@ impl Store {
.ok_or_else(|| format!("No node '{}'", old_key))?
.clone();
let prov = Provenance::from_env()
.map(|p| p.label().to_string())
.unwrap_or_else(|| "manual".to_string());
let prov = current_provenance();
// New version under the new key
let mut renamed = node.clone();