Compare commits
3 Commits
187a8b3657
...
1.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| c789056ccf | |||
| f5f783698f | |||
| 823783f307 |
@@ -56,7 +56,7 @@ steps:
|
||||
- ls -lah target/release/central_backend
|
||||
|
||||
- name: esp32_compile
|
||||
image: espressif/idf:v5.2.2 # FIXME : upgrade to 5.3.1
|
||||
image: espressif/idf:v5.3.1
|
||||
commands:
|
||||
- cd esp32_device
|
||||
- /opt/esp/entrypoint.sh idf.py build
|
||||
|
||||
7
central_backend/Cargo.lock
generated
7
central_backend/Cargo.lock
generated
@@ -670,6 +670,7 @@ dependencies = [
|
||||
"bincode",
|
||||
"chrono",
|
||||
"clap",
|
||||
"dotenvy",
|
||||
"env_logger",
|
||||
"foreign-types-shared",
|
||||
"fs4",
|
||||
@@ -997,6 +998,12 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dotenvy"
|
||||
version = "0.15.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
|
||||
|
||||
[[package]]
|
||||
name = "encode_unicode"
|
||||
version = "1.0.0"
|
||||
|
||||
@@ -7,6 +7,7 @@ edition = "2021"
|
||||
log = "0.4.22"
|
||||
env_logger = "0.11.5"
|
||||
lazy_static = "1.5.0"
|
||||
dotenvy = "0.15.7"
|
||||
clap = { version = "4.5.20", features = ["derive", "env"] }
|
||||
anyhow = "1.0.89"
|
||||
thiserror = "1.0.64"
|
||||
|
||||
@@ -38,8 +38,8 @@ pub enum ConsumptionBackend {
|
||||
|
||||
/// Fronius inverter consumption
|
||||
Fronius {
|
||||
/// The origin of the domain where the webserver of the Fronius Symo can be reacher
|
||||
#[clap(short, long)]
|
||||
/// The origin of the domain where the webserver of the Fronius Symo can be reached
|
||||
#[clap(short, long, env = "FRONIUS_ORIG")]
|
||||
origin: String,
|
||||
},
|
||||
}
|
||||
@@ -48,6 +48,10 @@ pub enum ConsumptionBackend {
|
||||
#[derive(Parser, Debug)]
|
||||
#[command(version, about, long_about = None)]
|
||||
pub struct AppConfig {
|
||||
/// Read arguments from env file
|
||||
#[clap(short, long, env)]
|
||||
pub config: Option<String>,
|
||||
|
||||
/// Proxy IP, might end with a star "*"
|
||||
#[clap(short, long, env)]
|
||||
pub proxy_ip: Option<String>,
|
||||
@@ -114,6 +118,21 @@ lazy_static::lazy_static! {
|
||||
}
|
||||
|
||||
impl AppConfig {
|
||||
/// Parse environment variables from file, if requedst
|
||||
pub fn parse_env_file() -> anyhow::Result<()> {
|
||||
if let Some(c) = Self::parse().config {
|
||||
log::info!("Load additional environment variables from {c}");
|
||||
let conf_file = Path::new(&c);
|
||||
|
||||
if !conf_file.is_file() {
|
||||
panic!("Specified configuration is not a file!");
|
||||
}
|
||||
dotenvy::from_path(conf_file)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Get parsed command line arguments
|
||||
pub fn get() -> &'static AppConfig {
|
||||
&ARGS
|
||||
|
||||
@@ -9,6 +9,9 @@ use tokio_schedule::{every, Job};
|
||||
|
||||
#[actix_web::main]
|
||||
async fn main() -> std::io::Result<()> {
|
||||
// Load additional config from file, if requested
|
||||
AppConfig::parse_env_file().expect("Failed to parse environment file!");
|
||||
|
||||
// Initialize OpenSSL
|
||||
openssl_sys::init();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user