• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

payjoin / rust-payjoin / 14180251374

31 Mar 2025 07:56PM UTC coverage: 81.564% (-0.2%) from 81.718%
14180251374

Pull #616

github

web-flow
Merge 999d41853 into b2aba5ea0
Pull Request #616: Persist ohttp keys

52 of 77 new or added lines in 4 files covered. (67.53%)

1 existing line in 1 file now uncovered.

5256 of 6444 relevant lines covered (81.56%)

717.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/payjoin-directory/src/main.rs
1
use std::env;
2

3
use payjoin_directory::*;
4
use tracing_subscriber::filter::LevelFilter;
5
use tracing_subscriber::EnvFilter;
6

7
const DEFAULT_KEY_CONFIG_DIR: &str = "ohttp_keys";
8

9
#[tokio::main]
10
async fn main() -> Result<(), Box<dyn std::error::Error>> {
×
11
    init_logging();
×
12

×
NEW
13
    let key_dir = std::env::var("PJ_OHTTP_KEY_DIR")
×
NEW
14
        .map(std::path::PathBuf::from)
×
NEW
15
        .unwrap_or_else(|_| std::path::PathBuf::from(DEFAULT_KEY_CONFIG_DIR));
×
NEW
16

×
NEW
17
    // Check for generate-key command
×
NEW
18
    if let Some(arg) = std::env::args().nth(1) {
×
NEW
19
        if arg == "generate-key" {
×
NEW
20
            let key_id = std::env::args().nth(2).and_then(|s| s.parse::<u8>().ok()).unwrap_or(1);
×
NEW
21
            let ohttp_config = key_config::gen_ohttp_server_config()?;
×
NEW
22
            let path = key_config::persist_new_key_config(ohttp_config, &key_dir)?;
×
NEW
23
            println!("Generated new key configuration with ID {} at {}", key_id, path.display());
×
NEW
24
            return Ok(());
×
NEW
25
        }
×
NEW
26
    }
×
NEW
27

×
28
    let dir_port =
×
29
        env::var("PJ_DIR_PORT").map_or(DEFAULT_DIR_PORT, |s| s.parse().expect("Invalid port"));
×
30

×
31
    let timeout_env = env::var("PJ_DIR_TIMEOUT_SECS")
×
32
        .map_or(DEFAULT_TIMEOUT_SECS, |s| s.parse().expect("Invalid timeout"));
×
33
    let timeout = std::time::Duration::from_secs(timeout_env);
×
34

×
35
    let db_host = env::var("PJ_DB_HOST").unwrap_or_else(|_| DEFAULT_DB_HOST.to_string());
×
36

×
NEW
37
    let ohttp = key_config::read_server_config(&key_dir)?;
×
NEW
38
    payjoin_directory::listen_tcp(dir_port, db_host, timeout, ohttp.into()).await
×
UNCOV
39
}
×
40

41
fn init_logging() {
×
42
    let env_filter =
×
43
        EnvFilter::builder().with_default_directive(LevelFilter::INFO.into()).from_env_lossy();
×
44

×
45
    tracing_subscriber::fmt().with_target(true).with_level(true).with_env_filter(env_filter).init();
×
46

×
47
    println!("Logging initialized");
×
48
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc