feat: Add get
command #37
1 changed files with 55 additions and 79 deletions
|
@ -14,8 +14,6 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/gpl-3.0.html>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/gpl-3.0.html>.
|
||||||
|
|
||||||
use std::num::NonZeroU64;
|
|
||||||
|
|
||||||
use clap::Args;
|
use clap::Args;
|
||||||
use inquire::Select;
|
use inquire::Select;
|
||||||
|
|
||||||
|
@ -25,9 +23,6 @@ use crate::{vault::Vaults, LprsCommand, LprsError, LprsResult};
|
||||||
#[command(author, version, about, long_about = None)]
|
#[command(author, version, about, long_about = None)]
|
||||||
/// List command, used to list the vaults and search
|
/// List command, used to list the vaults and search
|
||||||
pub struct List {
|
pub struct List {
|
||||||
/// Return the password with spesifc index
|
|
||||||
#[arg(short, long, value_name = "INDEX")]
|
|
||||||
get: Option<NonZeroU64>,
|
|
||||||
/// Filter the select list
|
/// Filter the select list
|
||||||
#[arg(short, long, value_name = "TEXT")]
|
#[arg(short, long, value_name = "TEXT")]
|
||||||
filter: Option<String>,
|
filter: Option<String>,
|
||||||
|
@ -43,21 +38,7 @@ impl LprsCommand for List {
|
||||||
"Looks like there is no vaults to list".to_owned(),
|
"Looks like there is no vaults to list".to_owned(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if let Some(user_vault_index) = self.get.map(|n| (n.get() - 1) as usize) {
|
|
||||||
log::info!("Getting the vault at index: {user_vault_index}");
|
|
||||||
if user_vault_index >= vault_manager.vaults.len() {
|
|
||||||
return Err(LprsError::Other(
|
|
||||||
"The `--get` index is great then the vaults length".to_owned(),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
println!(
|
|
||||||
"{}",
|
|
||||||
vault_manager
|
|
||||||
.vaults
|
|
||||||
.get(user_vault_index)
|
|
||||||
.expect("The index is correct")
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
let pattern = if self.regex || self.filter.is_none() {
|
let pattern = if self.regex || self.filter.is_none() {
|
||||||
self.filter.unwrap_or_else(|| ".".to_owned())
|
self.filter.unwrap_or_else(|| ".".to_owned())
|
||||||
} else {
|
} else {
|
||||||
|
@ -116,7 +97,7 @@ impl LprsCommand for List {
|
||||||
.get(vault_idx - 1)
|
.get(vault_idx - 1)
|
||||||
.expect("The index is correct")
|
.expect("The index is correct")
|
||||||
);
|
);
|
||||||
}
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,11 +107,6 @@ impl LprsCommand for List {
|
||||||
"You cannot use the `--regex` flag if you did not use the search option".to_owned(),
|
"You cannot use the `--regex` flag if you did not use the search option".to_owned(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if self.filter.is_some() && self.get.is_some() {
|
|
||||||
return Err(LprsError::Other(
|
|
||||||
"You cannot search while you want a vault with a specific index".to_owned(),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue