diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs index 4e1402d..dc238b1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -122,13 +122,8 @@ struct RemoteInstallArgs { #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { - let config = crate::cfg::config::Config::parse()?; - - init_router(&config).await?; let cli: Cli = Cli::parse(); - let config = Arc::new(config); - let result = { match &cli.command { Commands::Validate { path } => { @@ -170,7 +165,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { println!("Extracting archive..."); Package::extract_archive(pkgname)?; - let config = Config::parse().unwrap(); + let config = Config::parse()?; let cache_dir = &config.paths.cache_dir; // Find the package directory (should be name-version format) @@ -226,7 +221,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { println!("Extracting archive..."); Package::extract_archive(pkgname)?; - let config = Config::parse().unwrap(); + let config = Config::parse()?; let cache_dir = &config.paths.cache_dir; let mut pkg_dir_name = None; @@ -264,7 +259,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { pkg.install()?; println!("Package '{}' installed successfully.", pkg.name); } else { - let config = Config::parse().unwrap(); + let config = Config::parse()?; + // Initialize router if it's needed for I2P connections and is enabled + if !args.http && config.router.integrated_router { + init_router(&config).await?; + } if args.http { println!("Installing {} via HTTP", pkgname); let mut http_client = HTTPPackage::new(config); @@ -323,7 +322,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { } } Commands::GetSource { pkgname } => { - let config = Config::parse().unwrap(); + let config = Config::parse()?; + // Initialize router for I2P connections if enabled + if config.router.integrated_router { + init_router(&config).await?; + } println!("Getting source of {}", pkgname); let source_path = GitSource::get_source_by_name(pkgname, &config)?; @@ -369,7 +372,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { return Ok(()); } Commands::Update => { - let config = Config::parse().unwrap(); + let config = Config::parse()?; + // Initialize router for I2P connections if enabled + if config.router.integrated_router { + init_router(&config).await?; + } println!("Updating index from {}", config.repo.repo_url); let mut i2p_client = I2PPackage::new(config); |
