pakka 0.0.5

A cross platform meta package manager with auto snapshotting file system based transactions
Documentation
pub fn btrfs_create_snapshot(source: &str, dest: &str) {
  println!("btrfs_create_snapshot({source}, {dest})");
  return;

  let output = std::process::Command::new("btrfs")
    .arg("subvolume")
    .arg("snapshot")
    .arg(source)
    .arg(dest)
    .output()
    .expect("Failed to create Btrfs snapshot");

  if output.status.success() {
    println!("Btrfs snapshot created successfully");
  } else {
    eprintln!("Failed to create Btrfs snapshot");
  }
}

pub fn btrfs_rollback_snapshot(current: &str, snapshot: &str) {
  println!("btrfs_rollback_snapshot({current}, {snapshot})");
  return;

  let delete_output = std::process::Command::new("btrfs")
    .arg("subvolume")
    .arg("delete")
    .arg(current)
    .output()
    .expect("Failed to delete current Btrfs subvolume");

  if delete_output.status.success() {
    let create_output = std::process::Command::new("btrfs")
      .arg("subvolume")
      .arg("snapshot")
      .arg(snapshot)
      .arg(current)
      .output()
      .expect("Failed to create Btrfs snapshot");

    if create_output.status.success() {
      println!("Btrfs rollback successful");
    } else {
      eprintln!("Failed to create Btrfs snapshot for rollback");
    }
  } else {
    eprintln!("Failed to delete current Btrfs subvolume");
  }
}