1use std::path::PathBuf;
2
3use crate::selector::{OutpostSelector, resolve_live_entry};
4use crate::{OutpostResult, SourceRepo};
5
6pub struct LockOptions {
7 pub selector: OutpostSelector,
8 pub reason: Option<String>,
9}
10
11pub fn run(source: &SourceRepo, opts: LockOptions) -> OutpostResult<PathBuf> {
12 let resolved = resolve_live_entry(source, &opts.selector)?;
13 let mut registry = source.registry_mut()?;
14 registry.lock(&resolved.path, opts.reason)?;
15 registry.save()?;
16 Ok(resolved.path)
17}