Compare commits

...

2 Commits

Author SHA1 Message Date
Lux Aliaga c5cc1ea97a
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!
2023-02-17 13:39:56 -03:00
Lux Aliaga faf8036b19
archive: Fixed slot colors
In the confirmation message the slot being exported showed as white. It
should now be colored in either green, blue or red.
2023-02-17 12:44:18 -03:00
2 changed files with 26 additions and 3 deletions

View File

@ -40,9 +40,9 @@ pub fn export_inv(slot: &str, output: PathBuf, message: bool) -> Result<()> {
"✅ {} {} {} {}",
"Exported".green(),
match slot {
"a" => "active",
"i" => "inactive",
_ => &slot,
"a" | "active" => "active".green(),
"i" | "inactive" => "inactive".blue(),
_ => slot.red(),
}
.bold(),
"slot into".green(),
@ -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(())
}

View File

@ -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], "")?,