Skip to content

Commit

Permalink
server: default lndk conf in data dir
Browse files Browse the repository at this point in the history
LNDK is already using a datadir to store TLS certificates.
In this PR we expect lndk.conf file to be either in root of the project
or the data_dir as defaults. Precedence is root > data_dir.
  • Loading branch information
a-mpch committed Nov 8, 2024
1 parent 925ce05 commit 41230ce
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ pub const DEFAULT_SERVER_HOST: &str = "127.0.0.1";
pub const DEFAULT_SERVER_PORT: u16 = 7000;
pub const LDK_LOGGER_NAME: &str = "ldk";
pub const DEFAULT_DATA_DIR: &str = ".lndk";
pub const DEFAULT_CONFIG_FILE_NAME: &str = "lndk.conf";

pub const TLS_CERT_FILENAME: &str = "tls-cert.pem";
pub const TLS_KEY_FILENAME: &str = "tls-key.pem";
Expand Down
24 changes: 18 additions & 6 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ use lndk::lnd::{get_lnd_client, validate_lnd_creds, LndCfg};
use lndk::server::{generate_tls_creds, read_tls, LNDKServer};
use lndk::{
lndkrpc, setup_logger, Cfg, LifecycleSignals, LndkOnionMessenger, OfferHandler,
DEFAULT_DATA_DIR, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT,
DEFAULT_CONFIG_FILE_NAME, DEFAULT_DATA_DIR, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT,
};
use lndkrpc::offers_server::OffersServer;
use log::{error, info};
use std::ffi::OsString;
use std::fs::create_dir_all;
use std::path::PathBuf;
use std::path::{Path, PathBuf};
use std::process::exit;
use std::sync::Arc;
use tokio::select;
Expand All @@ -33,14 +34,15 @@ extern crate configure_me;

#[tokio::main]
async fn main() -> Result<(), ()> {
let config = Config::including_optional_config_files(&["./lndk.conf"])
let data_dir = create_data_dir().map_err(|e| {
println!("Error creating LNDK's data dir: {:?}", e);
})?;
let paths = get_conf_file_paths(&data_dir);
let config = Config::including_optional_config_files(paths)

Check warning on line 41 in src/main.rs

View check run for this annotation

Codecov / codecov/patch

src/main.rs#L37-L41

Added lines #L37 - L41 were not covered by tests
.unwrap_or_exit()
.0;

let data_dir =
create_data_dir().map_err(|e| println!("Error creating LNDK's data dir {e:?}"))?;
setup_logger(config.log_level, config.log_dir)?;

let creds = validate_lnd_creds(
config.cert_path,
config.cert_pem,
Expand Down Expand Up @@ -161,3 +163,13 @@ fn create_data_dir() -> Result<PathBuf, std::io::Error> {

Ok(path)
}

fn get_conf_file_paths(data_dir: &Path) -> Vec<OsString> {
let data_dir_conf_file = data_dir.join(DEFAULT_CONFIG_FILE_NAME).into_os_string();
let current_dir_conf_file = Path::new("./")
.join(DEFAULT_CONFIG_FILE_NAME)
.into_os_string();

let paths = vec![current_dir_conf_file, data_dir_conf_file];
paths
}

Check warning on line 175 in src/main.rs

View check run for this annotation

Codecov / codecov/patch

src/main.rs#L167-L175

Added lines #L167 - L175 were not covered by tests

0 comments on commit 41230ce

Please sign in to comment.