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