Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

env var check quick and dirty #84

Merged
merged 1 commit into from
May 16, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
51 changes: 50 additions & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ pub mod scheduler;
pub mod util;

use crate::app::run;
use anyhow::Result;
use anyhow::{Context, Result};
use dotenvy::dotenv;
use lightning::LndConnector;
use nostr_sdk::prelude::*;
use scheduler::start_scheduler;
use std::env::var;
use tokio::sync::Mutex;

#[macro_use]
Expand All @@ -23,9 +24,57 @@ lazy_static! {
static ref RATE_EVENT_LIST: Mutex<Vec<Event>> = Mutex::new(vec![]);
}

pub fn check_env_vars() -> Result<()> {
// Mandatory env vars
let _ = var("NSEC_PRIVKEY")
.context("Missing NSEC_PRIVKEY env variable from env file - add mostro private key")?;
let _ = var("RELAYS")
.context("Missing RELAYS env variable from env file - add relay list comma separated")?;
let _ = var("DATABASE_URL").context("Missing DATABASE_URL from env file - Add a path")?;
let _ = var("LND_CERT_FILE").context("Missing LND_CERT_FILE from env file - Add a path")?;
let _ =
var("LND_MACAROON_FILE").context("Missing LND_MACAROON_FILE from env file - Add a path")?;
let _ = var("LND_GRPC_PORT")
.context("Missing LND_GRPC_PORT from env file - Add port value")?
.parse::<u64>()
.context("Error parsing LND_GRPC_PORT")?;
let _ = var("LND_GRPC_HOST").context("Missing LND_GRPC_HOST from env file - set host value")?;
let _ = var("INVOICE_EXPIRATION_WINDOW")
.context("Missing INVOICE_EXPIRATION_WINDOW from env file - Add expiration value")?
.parse::<u64>()
.context("Error parsing INVOICE_EXPIRATION_WINDOW")?;
let _ = var("HOLD_INVOICE_CLTV_DELTA")
.context("Missing HOLD_INVOICE_CLTV_DELTA from env file - Add cltv invoice value")?
.parse::<u64>()
.context("Error parsing HOLD_INVOICE_CLTV_DELTA")?;
let _ = var("MIN_PAYMENT_AMT")
.context("Missing MIN_PAYMENT_AMT from env file - Add min payment value")?
.parse::<u64>()
.context("Error parsing MIN_PAYMENT_AMT")?;
let _ = var("EXP_SECONDS")
.context("Missing EXP_SECONDS from env file - Add expiration invoice seconds value")?
.parse::<u64>()
.context("Error parsing EXP_SECONDS")?;
let _ = var("EXP_HOURS")
.context("Missing EXP_HOURS from env file - Add expiration order hours value")?
.parse::<u64>()
.context("Error parsing EXP_HOURS")?;
let _ = var("MAX_ROUTING_FEE")
.context("Missing MAX_ROUTING_FEE from env file - Add routing fees value")?
.parse::<f64>()
.context("Error parsing MAX_ROUTING_FEE")?;
let _ = var("FEE")
.context("Missing FEE from env file - Add mostro fees value")?
.parse::<f64>()
.context("Error parsing FEE")?;

Ok(())
}

#[tokio::main]
async fn main() -> Result<()> {
dotenv().ok();
check_env_vars()?;
pretty_env_logger::init();
// Connect to database
let pool = db::connect().await?;
Expand Down