|
|
|
@ -3,15 +3,15 @@
|
|
|
|
|
#[macro_use] extern crate rocket_contrib;
|
|
|
|
|
extern crate qrcode_generator;
|
|
|
|
|
|
|
|
|
|
use rocket::http::RawStr;
|
|
|
|
|
use rocket::response::Redirect;
|
|
|
|
|
use rocket_contrib::templates::Template;
|
|
|
|
|
use rocket_contrib::json::JsonValue;
|
|
|
|
|
use rocket_contrib::serve::StaticFiles;
|
|
|
|
|
use qrcode_generator::QrCodeEcc;
|
|
|
|
|
use std::process::Command;
|
|
|
|
|
|
|
|
|
|
fn genkey() -> String {
|
|
|
|
|
let output = Command::new("sh")
|
|
|
|
|
.args(&["-c", "wg", "genkey"])
|
|
|
|
|
let output = Command::new("wg")
|
|
|
|
|
.arg("genkey")
|
|
|
|
|
.output()
|
|
|
|
|
.expect("failed to execute process");
|
|
|
|
|
let stdout = output.stdout;
|
|
|
|
@ -26,9 +26,15 @@ fn index() -> String {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[get("/new")]
|
|
|
|
|
fn new_key() -> String {
|
|
|
|
|
fn new_key() -> Template {
|
|
|
|
|
let new_key = genkey();
|
|
|
|
|
new_key.to_string()
|
|
|
|
|
let qr_code: String = qrcode_generator::to_svg_to_string(new_key, QrCodeEcc::Low, 256, None)
|
|
|
|
|
.unwrap();
|
|
|
|
|
let qr_code: String = base64::encode(qr_code);
|
|
|
|
|
let context: JsonValue = json!({
|
|
|
|
|
"qr_code": qr_code,
|
|
|
|
|
});
|
|
|
|
|
Template::render("new", context)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[catch(404)]
|
|
|
|
|