EBMWMFKOD3EINRHTZRWQ4M6PIJONR2NG7YDXQDKEJ5PEF4O2PCFAC
WEHUTJUKHOJIBMEK2M7ILPK532FMO7YGWTEAHOIXZP5WOOOSF3ZAC
GYXIF25T2BCTCWCQI5DQOF3F4HBWDJUDJUMZ2WLHVBIOYATJTFAQC
SQVWP4LU7AAJSEIHK5CNNUK3XBUVT3FGIJIOPTKMR53PO2P4ARNQC
I2D35LLFDA7KMKGVQWDOYZFZVHTRKOCLVRL3M3ZASSU7QQKL4K5AC
L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
SNZ3OAMCPUGFYON5SZHQQQK46ZZMVMJECJYEUCMG657UVLY2PNBQC
5DVRL6MFXQOCPOZMYSKBERMRRVUTYRL2SRGRTU2MH4IEOFCDKM3QC
VQPAUKBQ2POZKL7CZFAZK5ZQKEBYL27XZYZWYUSH5AH25KK6DWKAC
VNBLGT6GAN2AHKRFKTKED7WNDDRGNULY5H343ZYV3ETSDZZKGBTAC
MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC
G6S6PWZEFJK7ARWBIFKDU6VYC5DCJ2YFJMWZOLLWWKU52R2QPXZAC
367UBQ6KNAKUEWG32R4QRJ6H7IE7NAZFOPTC3ZOE4Z6E44RV3ISQC
VMPAOJS2ZFOLNXALHWSVM5AFENWX6ZUACB45EJV3HXI7DQNAZPHQC
BZSC7VMYSFRXDHDDAMCDR6X67FN5VWIBOSE76BQLX7OCVOJFUA3AC
LYTVEPH3W5UHF7MAYFWBT6NVNC42HEVKJGGMFDKUDZDNDOI33YJQC
K6GWUOD55G377RVEEMMRPZ4EUAHCM2BGXNRJTE5UZJFFMJGFCEZQC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
76PCXGML77EZWTRI5E6KHLVRAFTJ2AB5YRN5EKOYNAPKTWY2KCGAC
2K7JLB4Z7BS5VFNWD4DO3MKYU7VNPA5MTVHVSDI3FQZ5ICM6XM6QC
SAGSYAPXQ2T6GC3B3TNRPNFTZMS7UMME6YQGSF5MOIM66S5NKB2QC
impl Lock {
pub async fn mut_txn_lock<P: AsRef<Path>>(p: P) -> Result<Self, anyhow::Error> {
let pp = p.as_ref().join("db_lock");
Ok(Lock::MutTxn(mut_txn(&pp).await?))
}
pub async fn txn_lock<P: AsRef<Path>>(p: P) -> Result<Self, anyhow::Error> {
let pp = p.as_ref().join("db_lock");
Ok(Lock::Txn(txn(&pp).await?))
}
pub async fn commit(&mut self) -> Result<(), anyhow::Error> {
match self {
Lock::MutTxn(m) => m.commit().await,
_ => Ok(()),
}
}
}
}
pristine: libpijul::pristine::sanakirja::Pristine::new(&pristine_dir)?,
lock: if mutable {
lock::Lock::mut_txn_lock(&pristine_dir).await?
} else {
lock::Lock::txn_lock(&pristine_dir).await?
},
pristine: unsafe {
libpijul::pristine::sanakirja::Pristine::new_nolock(&pristine_dir)?
},
SubCommand::Change(change) => change.run(),
SubCommand::Channel(channel) => channel.run(),
SubCommand::Protocol(protocol) => protocol.run(),
SubCommand::Change(change) => change.run().await,
SubCommand::Channel(channel) => channel.run().await,
SubCommand::Protocol(protocol) => protocol.run().await,
SubCommand::Git(git) => git.run(),
SubCommand::Mv(mv) => mv.run(),
SubCommand::Ls(ls) => ls.run(),
SubCommand::Add(add) => add.run(),
SubCommand::Remove(remove) => remove.run(),
SubCommand::Reset(reset) => reset.run(),
SubCommand::Git(git) => git.run().await,
SubCommand::Mv(mv) => mv.run().await,
SubCommand::Ls(ls) => ls.run().await,
SubCommand::Add(add) => add.run().await,
SubCommand::Remove(remove) => remove.run().await,
SubCommand::Reset(reset) => reset.run().await,
SubCommand::Debug(debug) => debug.run(),
SubCommand::Fork(fork) => fork.run(),
SubCommand::Unrecord(unrecord) => unrecord.run(),
SubCommand::Apply(apply) => apply.run(),
SubCommand::Remote(remote) => remote.run(),
SubCommand::Debug(debug) => debug.run().await,
SubCommand::Fork(fork) => fork.run().await,
SubCommand::Unrecord(unrecord) => unrecord.run().await,
SubCommand::Apply(apply) => apply.run().await,
SubCommand::Remote(remote) => remote.run().await,
pub fn run(self) -> Result<(), anyhow::Error> {
let repo = if let Ok(repo) = Repository::find_root(self.repo_path.clone()) {
pub async fn run(self) -> Result<(), anyhow::Error> {
let repo = if let Ok(repo) = Repository::find_root(self.repo_path.clone()).await {
pub fn run(self) -> Result<(), anyhow::Error> {
let repo = Repository::find_root(self.repo_path)?;
pub async fn run(self) -> Result<(), anyhow::Error> {
let repo = unsafe { Repository::find_root_immutable(self.repo_path).await? };
pub fn run(self) -> Result<(), anyhow::Error> {
let repo = Repository::find_root(self.repo_path.clone())?;
pub async fn run(self) -> Result<(), anyhow::Error> {
let repo = unsafe { Repository::find_root_immutable(self.repo_path.clone()).await? };