Add common functions to load channel for CLI operations
Dependencies
- [2]
GKSVBEUWRefactor Repository constructors to take Option<&Path> instead of Option<PathBuf> - [3]
X243Z3Y5Recording only the required metadata (can even be changed later!) - [4]
A3RM526YIntegrating identity malleability - [5]
E7UUQQCCApply changes with prefixes in .pijul/changes - [6]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [7]
3QXUJMZDMore detailed display of conflicts - [8]
C4MJ7D7QVerbose printing of conflicts to stderr - [*]
SLJ3OHD4unrecord: show list of changes if none were given as arguments
Change contents
- replacement in pijul/src/commands/mod.rs at line 1
use anyhow::bail;use anyhow::{anyhow, bail}; - replacement in pijul/src/commands/mod.rs at line 326
use libpijul::Conflict;use libpijul::{ChannelRef, Conflict, TxnT}; - edit in pijul/src/commands/mod.rs at line 370[3.3076][10.5215]
}fn get_channel<'a, T>(cli: Option<&'a str>, txn: &'a T) -> (&'a str, bool)whereT: TxnT,{let cur = txn.current_channel().ok();let ch = cli.or(cur);(ch.unwrap_or(libpijul::DEFAULT_CHANNEL), ch == cur) - edit in pijul/src/commands/mod.rs at line 380[10.5217]
fn load_channel<T>(cli: Option<&str>, txn: &T) -> anyhow::Result<(ChannelRef<T>, bool)>whereT: TxnT,{let (channel_name, is_current_channel) = get_channel(cli, &*txn);let channel = load_channel_exact(&channel_name, txn)?;Ok((channel, is_current_channel))}fn load_channel_exact<T>(name: &str, txn: &T) -> anyhow::Result<ChannelRef<T>>whereT: TxnT,{txn.load_channel(name)?.ok_or_else(|| anyhow!("No such channel: {}", name))}