X-Git-Url: http://git.euphorik.ch/?p=rup.git;a=blobdiff_plain;f=src%2Fmain.rs;h=09965c1b22226fb2884ba16732cfeff00b48a5d0;hp=7a179af2ef6d935bdfd003bd82ae7061f639755a;hb=c0942504c4cf480ccea96bfcf9ed6c731f49b852;hpb=7b132e2976883c7b8e63540129a36eb63ceb33c5 diff --git a/src/main.rs b/src/main.rs index 7a179af..09965c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,9 @@ use askama::Template; use ron::de::from_reader; use serde::Deserialize; -use std::fs::File; +use std::{fs::File, env::args}; + +use itertools::Itertools; mod consts; mod crypto; @@ -50,8 +52,38 @@ struct Config { port: u16 } +fn get_exe_name() -> String { + let first_arg = std::env::args().nth(0).unwrap(); + //dbg!(&first_arg); + let sep: &[_] = &['\\', '/']; + first_arg[first_arg.rfind(sep).unwrap()+1..].to_string() +} + +fn print_usage() { + println!("Usage:"); + println!(" {} [--help] [--encrypt ]", get_exe_name()); +} + fn main() -> std::io::Result<()> { - println!("Starting RUP..."); + let args: Vec = args().collect(); + + if args.iter().any(|arg| arg == "--help") { + print_usage(); + return Ok(()); + } else if let Some((position_arg_encrypt, _)) = args.iter().find_position(|arg| arg == &"--encrypt") { + match args.iter().nth(position_arg_encrypt + 1) { + Some(mess_to_encrypt) => { + let encrypted_mess = mess_to_encrypt; + //let encrypted_mess = crypto::encrypt(key: &str, plain_text: &str); + println!("Encrypted message: {}", encrypted_mess); + } + None => print_usage() + } + + return Ok(()); + } + + println!("Starting RUP as web server..."); let config: Config = { let f = File::open(consts::FILE_CONF).expect(&format!("Failed to open configuration file {}", consts::FILE_CONF)); @@ -61,6 +93,8 @@ fn main() -> std::io::Result<()> { } }; + let key = File::open(consts::FILE_KEY).expect(&format!("Failed to open key file: {}", consts::FILE_KEY)); + println!("Configuration: {:?}", config); let mut listenfd = ListenFd::from_env();