feat: rm acme config

This commit is contained in:
2021-05-05 00:36:01 +08:00
parent e80dded0ed
commit 0879c5f82d
2 changed files with 7 additions and 69 deletions

View File

@@ -1,5 +1,4 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use rust_util::util_file;
use rust_util::XResult; use rust_util::XResult;
use std::fs; use std::fs;
use acme_lib::DirectoryUrl; use acme_lib::DirectoryUrl;
@@ -27,10 +26,6 @@ impl Default for AcmeAlgo {
} }
impl AcmeAlgo { impl AcmeAlgo {
// pub fn parse_or_default(s: &str) -> AcmeAlgo {
// Self::parse(s).unwrap_or_else(|_| Default::default())
// }
pub fn parse(s: &str) -> XResult<AcmeAlgo> { pub fn parse(s: &str) -> XResult<AcmeAlgo> {
match s { match s {
"ec256" => Ok(AcmeAlgo::Ec256), "ec256" => Ok(AcmeAlgo::Ec256),
@@ -57,10 +52,6 @@ impl Default for AcmeMode {
} }
impl AcmeMode { impl AcmeMode {
// pub fn parse_or_default(s: &str) -> AcmeMode {
// Self::parse(s).unwrap_or_else(|_| Default::default())
// }
pub fn parse(s: &str) -> XResult<AcmeMode> { pub fn parse(s: &str) -> XResult<AcmeMode> {
match s { match s {
"prod" => Ok(AcmeMode::Prod), "prod" => Ok(AcmeMode::Prod),
@@ -77,30 +68,6 @@ impl AcmeMode {
} }
} }
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AcmeConfig {
pub email: String,
pub dir: String,
pub auth_timeout: Option<u64>,
pub csr_timeout: Option<u64>,
pub concurrent: Option<u32>,
}
impl AcmeConfig {
// pub fn get_auth_timeout(&self) -> u64 {
// self.auth_timeout.unwrap_or(5_000)
// }
//
// pub fn get_csr_timeout(&self) -> u64 {
// self.csr_timeout.unwrap_or(5_000)
// }
//
// pub fn get_concurrent(&self) -> u32 {
// self.concurrent.unwrap_or(0)
// }
}
#[derive(Clone, Debug, Serialize, Deserialize)] #[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct CertConfigItem { pub struct CertConfigItem {
@@ -191,23 +158,3 @@ impl CertConfigItem {
} }
} }
} }
pub fn load_acme_config(file: Option<&str>, load_default: bool) -> XResult<Option<AcmeConfig>> {
if let Some(file) = file {
let s = opt_result!(util_file::read_file_content(file), "Read file: {}, failed: {}", file);
return Ok(Some(opt_result!(deser_hjson::from_str(&s), "Parse acme config file: {}, failed: {}", file)));
}
if load_default {
let default_config = util_file::read_config(None, &[
"~/acme_config.json".to_string(),
"/etc/acme_config.json".to_string(),
]);
if let Some(default_config) = default_config {
let s = opt_result!(fs::read_to_string(default_config.clone()), "Read file: {:?}, failed: {}", default_config);
return Ok(Some(opt_result!(deser_hjson::from_str(&s), "Parse acme config file: {:?}, failed: {}", default_config)));
}
}
Ok(None)
}

View File

@@ -23,7 +23,7 @@ use async_std::channel;
use async_std::channel::Sender; use async_std::channel::Sender;
use config::AcmeAlgo; use config::AcmeAlgo;
use config::AcmeMode; use config::AcmeMode;
use crate::config::{CertConfig, CERT_NAME, KEY_NAME, load_acme_config}; use crate::config::{CertConfig, CERT_NAME, KEY_NAME};
const NAME: &str = env!("CARGO_PKG_NAME"); const NAME: &str = env!("CARGO_PKG_NAME");
const VERSION: &str = env!("CARGO_PKG_VERSION"); const VERSION: &str = env!("CARGO_PKG_VERSION");
@@ -65,8 +65,7 @@ async fn main() -> tide::Result<()> {
.arg(Arg::with_name("timeout").long("timeout").takes_value(true).default_value("5000").help("Timeout (ms)")) .arg(Arg::with_name("timeout").long("timeout").takes_value(true).default_value("5000").help("Timeout (ms)"))
.arg(Arg::with_name("mode").short("m").long("mode").takes_value(true).default_value("prod").help("Mode")) .arg(Arg::with_name("mode").short("m").long("mode").takes_value(true).default_value("prod").help("Mode"))
.arg(Arg::with_name("dir").long("dir").takes_value(true).default_value("acme_dir").help("Account key dir")) .arg(Arg::with_name("dir").long("dir").takes_value(true).default_value("acme_dir").help("Account key dir"))
.arg(Arg::with_name("config").short("c").long("config").takes_value(true).help("Acme config")) .arg(Arg::with_name("config").short("c").long("config").takes_value(true).help("Cert config"))
.arg(Arg::with_name("cert-config").long("cert-config").takes_value(true).help("Cert config"))
.get_matches(); .get_matches();
if matches.is_present("version") { if matches.is_present("version") {
@@ -125,26 +124,18 @@ async fn main() -> tide::Result<()> {
}; };
let account_dir = matches.value_of("dir").unwrap_or("acme_dir"); let account_dir = matches.value_of("dir").unwrap_or("acme_dir");
let domains_val = matches.values_of("domain").unwrap_or_else(|| {
failure!("Domains is not assigned.");
exit(1);
});
let (s, r) = channel::bounded(1); let (s, r) = channel::bounded(1);
startup_http_server(s, port); startup_http_server(s, port);
r.recv().await.ok(); r.recv().await.ok();
task::sleep(Duration::from_millis(500)).await; task::sleep(Duration::from_millis(500)).await;
// TODO ...... let cert_config = matches.value_of("config");
let config = matches.value_of("config");
let _acme_config = load_acme_config(config, true).unwrap_or_else(|e| {
failure!("Load acme config failed: {}", e);
exit(1);
});
let cert_config = matches.value_of("cert-config");
match cert_config { match cert_config {
None => { // cert config is not assigned None => { // cert config is not assigned
let domains_val = matches.values_of("domain").unwrap_or_else(|| {
failure!("Domains is not assigned.");
exit(1);
});
let domains: Vec<&str> = domains_val.collect::<Vec<_>>(); let domains: Vec<&str> = domains_val.collect::<Vec<_>>();
let primary_name = domains[0]; let primary_name = domains[0];
let alt_names: Vec<&str> = domains.into_iter().skip(1).collect(); let alt_names: Vec<&str> = domains.into_iter().skip(1).collect();