✨ Adds creating logins
Signed-off-by: Ash Svitan <selfsigned-ash@proton.me>
This commit is contained in:
+18
-2
@@ -1,8 +1,10 @@
|
||||
use crate::sh;
|
||||
use regex::Regex;
|
||||
use serde::Deserialize;
|
||||
use std::io::{Error, ErrorKind};
|
||||
|
||||
const EXECUTABLE: &str = "pass-cli";
|
||||
const EMAIL_REGEX: &str = r"^[\w\-\.]+@([\w-]+\.)+[\w-]{2,}$";
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct Vaults {
|
||||
@@ -124,7 +126,7 @@ pub fn get_logins(items: Items) -> Vec<LoginItem> {
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn update(vault: &String, item: LoginItem, user_is_actually_email: bool) -> Result<(), Error> {
|
||||
pub fn update(vault: &String, item: LoginItem, user_is_actually_email: bool) {
|
||||
let user_field_update = if user_is_actually_email {
|
||||
format!("email={}", item.email)
|
||||
} else {
|
||||
@@ -135,6 +137,20 @@ pub fn update(vault: &String, item: LoginItem, user_is_actually_email: bool) ->
|
||||
EXECUTABLE, vault, item.id, item.password, user_field_update
|
||||
));
|
||||
println!("> {}", output);
|
||||
}
|
||||
|
||||
return Ok(());
|
||||
pub fn create(vault: &String, title: String, user: String, password: String) {
|
||||
let re = Regex::new(EMAIL_REGEX).expect("Couldn't parse regex");
|
||||
let is_email = re.is_match(&user);
|
||||
let user_arg = if is_email {
|
||||
format!("--email '{}'", user)
|
||||
} else {
|
||||
format!("--username '{}'", user)
|
||||
};
|
||||
|
||||
let output = sh::sh(format!(
|
||||
"{} item create login --vault-name '{}' --title '{}' {} --password '{}'",
|
||||
EXECUTABLE, vault, title, user_arg, password
|
||||
));
|
||||
println!("> {}", output);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user