diff options
Diffstat (limited to 'hbak/src')
-rw-r--r-- | hbak/src/main.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/hbak/src/main.rs b/hbak/src/main.rs index 7224ac5..9aa96f7 100644 --- a/hbak/src/main.rs +++ b/hbak/src/main.rs @@ -125,6 +125,9 @@ enum Commands { /// Do not restore the latest snapshots to the subvolumes. #[arg(short = 'r', long)] no_restore: bool, + /// Do not keep the fstab file from an existing subvolume. + #[arg(short = 'f', long)] + ignore_fstab: bool, /// The device file the local btrfs file system is located at. device: String, /// The name this node was previously known under. @@ -292,6 +295,7 @@ fn logic() -> Result<()> { } Commands::Restore { no_restore, + ignore_fstab, device, node_name, address, @@ -313,7 +317,7 @@ fn logic() -> Result<()> { )?; println!("Restoring from {}...", address); - restore(&local_node, &address, no_restore)?; + restore(&local_node, &address, no_restore, ignore_fstab)?; } } @@ -431,7 +435,12 @@ fn sync( Ok(()) } -fn restore(local_node: &LocalNode, address: &str, no_restore: bool) -> Result<()> { +fn restore( + local_node: &LocalNode, + address: &str, + no_restore: bool, + ignore_fstab: bool, +) -> Result<()> { let address = match address.parse() { Ok(address) => address, Err(_) => SocketAddr::new(address.parse()?, DEFAULT_PORT), @@ -515,7 +524,7 @@ fn restore(local_node: &LocalNode, address: &str, no_restore: bool) -> Result<() if !no_restore { for subvol in &local_node.config().subvols { println!("Restoring subvolume {}", subvol); - local_node.restore(subvol.clone())?; + local_node.restore(subvol.clone(), ignore_fstab)?; } } |