+fn write_key(key : &str) {
+ let percent_encoded = percent_encoding::utf8_percent_encode(key, percent_encoding::NON_ALPHANUMERIC).to_string();
+ let mut file = File::create(consts::FILE_KEY).unwrap();
+ file.write_all(percent_encoded.as_bytes()).unwrap();
+}
+
+#[actix_rt::main]
+
+async fn main() -> std::io::Result<()> {
+ let key = {
+ // If the key file doesn't exist then create a new one with a random key in it.
+ if !Path::new(consts::FILE_KEY).exists() {
+ let new_key = crypto::generate_key();
+ write_key(&new_key);
+ println!("A key has been generated here: {}", consts::FILE_KEY);
+ new_key
+ } else {
+ read_key()
+ }
+ };