feat: fix panic
This commit is contained in:
11
src/main.rs
11
src/main.rs
@@ -10,6 +10,8 @@ use clap::{App, Arg};
|
||||
use std::sync::{Arc, RwLock};
|
||||
use std::collections::BTreeMap;
|
||||
use tide::Request;
|
||||
use std::process::exit;
|
||||
use std::time::Duration;
|
||||
|
||||
const NAME: &str = env!("CARGO_PKG_NAME");
|
||||
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||
@@ -56,8 +58,8 @@ async fn main() -> tide::Result<()> {
|
||||
};
|
||||
|
||||
let domains: Vec<&str> = domains_val.collect::<Vec<_>>();
|
||||
information!("Domains: {:?}", domains);
|
||||
|
||||
let (s, r) = async_std::channel::bounded(1);
|
||||
async_std::task::spawn(async move {
|
||||
information!("Listen at 0.0.0.0:{}", port);
|
||||
let mut app = tide::new();
|
||||
@@ -81,13 +83,18 @@ async fn main() -> tide::Result<()> {
|
||||
}
|
||||
}
|
||||
});
|
||||
s.send(1).await.ok();
|
||||
if let Err(e) = app.listen(&format!("0.0.0.0:{}", port)).await {
|
||||
failure!("Failed to listen 0.0.0.0:{}, error: {}", port, e);
|
||||
exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
r.recv().await.ok();
|
||||
async_std::task::sleep(Duration::from_secs(1)).await;
|
||||
let primary_name = domains[0];
|
||||
let alt_names: Vec<&str> = domains.into_iter().skip(1).collect();
|
||||
information!("Domains, main: {}, alt: {:?}", primary_name, alt_names);
|
||||
request_domains(email, primary_name, &alt_names).expect("Request domain failed");
|
||||
|
||||
Ok(())
|
||||
@@ -96,7 +103,7 @@ async fn main() -> tide::Result<()> {
|
||||
|
||||
fn request_domains(contract_email: &str, primary_name: &str, alt_names: &[&str]) -> XResult<()> {
|
||||
let url = DirectoryUrl::LetsEncrypt;
|
||||
std::fs::create_dir("__temp_dir").expect("Create temp dir failed!");
|
||||
std::fs::create_dir("__temp_dir").ok();
|
||||
let persist = FilePersist::new("__temp_dir");
|
||||
let dir = Directory::from_url(persist, url)?;
|
||||
let acc = dir.account(contract_email)?;
|
||||
|
||||
Reference in New Issue
Block a user