main.rs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //! CDK MINTD
  2. #![warn(missing_docs)]
  3. #![warn(rustdoc::bare_urls)]
  4. // Ensure at least one lightning backend is enabled at compile time
  5. #[cfg(not(any(
  6. feature = "cln",
  7. feature = "lnbits",
  8. feature = "lnd",
  9. feature = "fakewallet",
  10. feature = "grpc-processor"
  11. )))]
  12. compile_error!(
  13. "At least one lightning backend feature must be enabled: cln, lnbits, lnd, fakewallet, or grpc-processor"
  14. );
  15. // Ensure at least one database backend is enabled at compile time
  16. #[cfg(not(any(feature = "sqlite", feature = "postgres")))]
  17. compile_error!("At least one database backend feature must be enabled: sqlite or postgres");
  18. use anyhow::Result;
  19. use cdk_mintd::cli::CLIArgs;
  20. use cdk_mintd::{get_work_directory, load_settings};
  21. use clap::Parser;
  22. use tokio::main;
  23. #[main]
  24. async fn main() -> Result<()> {
  25. let args = CLIArgs::parse();
  26. let work_dir = get_work_directory(&args).await?;
  27. let settings = load_settings(&work_dir, args.config)?;
  28. #[cfg(feature = "sqlcipher")]
  29. let password = Some(CLIArgs::parse().password);
  30. #[cfg(not(feature = "sqlcipher"))]
  31. let password = None;
  32. // Use the main function that handles logging setup and cleanup
  33. cdk_mintd::run_mintd(&work_dir, &settings, password, args.enable_logging).await
  34. }