Feature Changes
Added a Token Credential Manager - Closes #4 Added TUI Menu - Closes #2
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
use dialoguer::{Input, theme::ColorfulTheme};
|
||||
use keyring::Entry;
|
||||
|
||||
pub fn get_token<'a>(service: &str, username: &str) -> String {
|
||||
let entry = Entry::new(service, username).expect("Failed to get keyring entry");
|
||||
match entry.get_password() {
|
||||
Ok(token) => token,
|
||||
Err(_) => {
|
||||
let token: String = Input::with_theme(&ColorfulTheme::default())
|
||||
.with_prompt("Enter your bot token")
|
||||
.interact_text()
|
||||
.unwrap();
|
||||
match entry.set_password(&token) {
|
||||
Ok(_) => {}
|
||||
Err(e) => {
|
||||
println!("Failed to set token: {}", e);
|
||||
std::process::abort()
|
||||
}
|
||||
};
|
||||
token
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn change_token(service: &str, username: &str) {
|
||||
let entry = Entry::new(service, username).expect("Failed to get keyring entry");
|
||||
let new_token: String = Input::with_theme(&ColorfulTheme::default())
|
||||
.with_prompt("New Token")
|
||||
.interact_text()
|
||||
.unwrap();
|
||||
let _ = entry.set_password(&new_token);
|
||||
}
|
||||
|
||||
pub fn remove_token(service: &str, username: &str) {
|
||||
let entry = Entry::new(service, username).expect("Failed to get keyring entry");
|
||||
let _ = entry.delete_credential();
|
||||
}
|
||||
+2
-1
@@ -1,2 +1,3 @@
|
||||
pub mod credentialmanager;
|
||||
pub mod telemetry;
|
||||
pub mod updator;
|
||||
pub mod telemetry;
|
||||
@@ -25,6 +25,5 @@ pub async fn update() {
|
||||
println!("URL: https://git.racooncity.org/brotoskyj/RhythmWorks/releases");
|
||||
thread::sleep(std::time::Duration::from_secs(10));
|
||||
std::process::exit(1);
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user