cli: use credentials manager for pakker add

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4cc0075949f12672b4a68f355ca548a96a6a6964
This commit is contained in:
raf 2026-05-01 21:27:08 +03:00
commit a84a654841
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
2 changed files with 10 additions and 6 deletions

View file

@ -2,7 +2,7 @@ use std::collections::HashMap;
use crate::{ use crate::{
error::{MultiError, PakkerError, Result}, error::{MultiError, PakkerError, Result},
model::{Config, LockFile, Project}, model::{Config, LockFile, Project, credentials::ResolvedCredentials},
platform::create_platform, platform::create_platform,
resolver::DependencyResolver, resolver::DependencyResolver,
}; };
@ -15,7 +15,9 @@ pub fn create_all_platforms()
-> HashMap<String, Box<dyn crate::platform::PlatformClient>> { -> HashMap<String, Box<dyn crate::platform::PlatformClient>> {
let mut platforms = HashMap::new(); let mut platforms = HashMap::new();
let curseforge_key = std::env::var("CURSEFORGE_API_KEY").ok(); let credentials = ResolvedCredentials::load();
let curseforge_key = credentials.curseforge_api_key().map(String::from);
if let Ok(platform) = create_platform("multiplatform", curseforge_key) { if let Ok(platform) = create_platform("multiplatform", curseforge_key) {
platforms.insert("multiplatform".to_owned(), platform); platforms.insert("multiplatform".to_owned(), platform);
} else if let Ok(platform) = create_platform("modrinth", None) { } else if let Ok(platform) = create_platform("modrinth", None) {

View file

@ -6,6 +6,7 @@ use crate::{
Config, Config,
LockFile, LockFile,
Project, Project,
credentials::ResolvedCredentials,
enums::{ProjectSide, ProjectType, UpdateStrategy}, enums::{ProjectSide, ProjectType, UpdateStrategy},
}, },
platform::create_platform, platform::create_platform,
@ -315,15 +316,16 @@ fn create_all_platforms()
-> HashMap<String, Box<dyn crate::platform::PlatformClient>> { -> HashMap<String, Box<dyn crate::platform::PlatformClient>> {
let mut platforms = HashMap::new(); let mut platforms = HashMap::new();
let curseforge_key = std::env::var("CURSEFORGE_API_KEY").ok(); let credentials = ResolvedCredentials::load();
let curseforge_key = credentials.curseforge_api_key().map(String::from);
let github_token = credentials.github_access_token().map(String::from);
if let Ok(platform) = create_platform("multiplatform", curseforge_key) { if let Ok(platform) = create_platform("multiplatform", curseforge_key) {
platforms.insert("multiplatform".to_string(), platform); platforms.insert("multiplatform".to_string(), platform);
} else if let Ok(platform) = create_platform("modrinth", None) { } else if let Ok(platform) = create_platform("modrinth", None) {
platforms.insert("modrinth".to_string(), platform); platforms.insert("modrinth".to_string(), platform);
} }
if let Ok(platform) = if let Ok(platform) = create_platform("github", github_token) {
create_platform("github", std::env::var("GITHUB_TOKEN").ok())
{
platforms.insert("github".to_string(), platform); platforms.insert("github".to_string(), platform);
} }