+ CLI Tool for clippable
! Not yet tested however there really isn't much code to test at all
This commit is contained in:
parent
9f9f61d968
commit
42924e8419
15
clippable-cli/Cargo.toml
Normal file
15
clippable-cli/Cargo.toml
Normal file
@ -0,0 +1,15 @@
|
||||
[package]
|
||||
name = "clippable-cli"
|
||||
version = "0.1.0"
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = { version = "1.0" }
|
||||
|
||||
# For commanline parsing
|
||||
clap = "2.33.3"
|
||||
|
||||
dblib = { path = "../dblib" }
|
69
clippable-cli/src/main.rs
Normal file
69
clippable-cli/src/main.rs
Normal file
@ -0,0 +1,69 @@
|
||||
use clap::{App, Arg, AppSettings};
|
||||
use dblib::DB;
|
||||
|
||||
const DEFAULT_STORAGE: &'static str = "store.json";
|
||||
|
||||
fn main() {
|
||||
let matches = App::new("clippable-cli")
|
||||
.version("0.1")
|
||||
.author("shockrah")
|
||||
.about("CLI Tool for clippable")
|
||||
.setting(AppSettings::ArgRequiredElseHelp)
|
||||
.arg(Arg::with_name("generate-key")
|
||||
.short("g")
|
||||
.long("generate-key")
|
||||
.value_name("NAME")
|
||||
.help("Generates a new API key to allow usage in this server"))
|
||||
.arg(Arg::with_name("remove-key")
|
||||
.short("r")
|
||||
.long("remove-key")
|
||||
.value_name("NAME")
|
||||
.help("Removes a key based on the given name"))
|
||||
.arg(Arg::with_name("update-key")
|
||||
.short("u")
|
||||
.long("update-key")
|
||||
.value_name("NAME")
|
||||
.help("Generate a new key for that user identified by NAME"))
|
||||
.get_matches();
|
||||
|
||||
if let Some(name) = matches.value_of("generate-key") {
|
||||
println!("Genating key for {}", name);
|
||||
generate_key(String::from(name));
|
||||
}
|
||||
|
||||
if let Some(name) = matches.value_of("remove-key") {
|
||||
println!("Removing key for {}", name);
|
||||
remove_key(String::from(name));
|
||||
}
|
||||
|
||||
if let Some(name) = matches.value_of("update-key") {
|
||||
println!("Updating key for {}", name);
|
||||
update_key(String::from(name));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fn generate_key(name: String) {
|
||||
match DB::new_entry(String::from(DEFAULT_STORAGE), name.clone()) {
|
||||
Ok(key) => println!("Key for {}\t{}", name, key),
|
||||
Err(e) => eprintln!("Error: {}", e)
|
||||
}
|
||||
}
|
||||
|
||||
fn remove_key(name: String) {
|
||||
match DB::remove_entry(String::from(DEFAULT_STORAGE), name.clone()) {
|
||||
Ok(removed) => {
|
||||
match removed {
|
||||
true => println!("Removed key for {}", name),
|
||||
false => println!("Warning: unable to remove key for {}", name)
|
||||
};
|
||||
},
|
||||
Err(e) => eprintln!("Error removing key: {}", e)
|
||||
}
|
||||
}
|
||||
|
||||
fn update_key(name: String) {
|
||||
remove_key(name.clone());
|
||||
generate_key(name);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user