mirror of https://git.sr.ht/~nixgoat/vento
archive: Add install exporting
This exports all contents in your vento directory into an xz tarball. Needs documentation, but essentially it works using `vento -E`. Mind the uppercase E there!
This commit is contained in:
parent
faf8036b19
commit
c5cc1ea97a
|
@ -51,3 +51,21 @@ pub fn export_inv(slot: &str, output: PathBuf, message: bool) -> Result<()> {
|
|||
};
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn export_install(output: PathBuf, message: bool) -> Result<()> {
|
||||
let dir: PathBuf = common::env_config()?.vento_dir;
|
||||
|
||||
let archive = File::create(&output)?;
|
||||
let enc = XzEncoder::new(archive, 9);
|
||||
let mut tar = tar::Builder::new(enc);
|
||||
tar.append_dir_all("", dir)?;
|
||||
|
||||
if message {
|
||||
println!(
|
||||
"✅ {} {}",
|
||||
"Exported Vento install into".green(),
|
||||
&output.to_str().unwrap()
|
||||
);
|
||||
};
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -60,6 +60,11 @@ fn main() -> Result<()> {
|
|||
2 => archive::export_inv("active", PathBuf::from("active.tar.xz"), true)?,
|
||||
_ => throw_error(ErrorType::TooManyArgs)?,
|
||||
},
|
||||
"-E" | "--export-install" => match args.len() {
|
||||
3 => archive::export_install(PathBuf::from(&args[2]), true)?,
|
||||
2 => archive::export_install(PathBuf::from("vento.tar.xz"), true)?,
|
||||
_ => throw_error(ErrorType::TooManyArgs)?,
|
||||
},
|
||||
"-s" => match args.len() {
|
||||
4 => inv::list(&args[2], &args[3])?,
|
||||
3 => inv::list(&args[2], "")?,
|
||||
|
|
Loading…
Reference in New Issue