wip
This commit is contained in:
@@ -128,7 +128,13 @@ fn run(cli: Cli) -> Result<()> {
|
||||
// Load repos for reverse-dep checking
|
||||
let mut all_repo_packages = std::collections::HashMap::new();
|
||||
for repo in &config.repos {
|
||||
let repo_pkgs = resolver::DependencyGraph::load_repo(&repo.path)?;
|
||||
let repo_pkgs = match resolver::DependencyGraph::load_repo(&repo.path) {
|
||||
Ok(pkgs) => pkgs,
|
||||
Err(e) => {
|
||||
eprintln!("Warning: failed to load repo '{}': {}", repo.name, e);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
all_repo_packages.extend(repo_pkgs);
|
||||
}
|
||||
|
||||
@@ -191,7 +197,13 @@ fn run(cli: Cli) -> Result<()> {
|
||||
// Load all repos to compare available vs installed versions
|
||||
let mut all_repo_packages = std::collections::HashMap::new();
|
||||
for repo in &config.repos {
|
||||
let repo_pkgs = resolver::DependencyGraph::load_repo(&repo.path)?;
|
||||
let repo_pkgs = match resolver::DependencyGraph::load_repo(&repo.path) {
|
||||
Ok(pkgs) => pkgs,
|
||||
Err(e) => {
|
||||
eprintln!("Warning: failed to load repo '{}': {}", repo.name, e);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
all_repo_packages.extend(repo_pkgs);
|
||||
}
|
||||
|
||||
@@ -254,7 +266,13 @@ fn run(cli: Cli) -> Result<()> {
|
||||
Commands::Search { query } => {
|
||||
// Search through all repos for matching package names/descriptions
|
||||
for repo in &config.repos {
|
||||
let packages = resolver::DependencyGraph::load_repo(&repo.path)?;
|
||||
let packages = match resolver::DependencyGraph::load_repo(&repo.path) {
|
||||
Ok(pkgs) => pkgs,
|
||||
Err(e) => {
|
||||
eprintln!("Warning: failed to load repo '{}': {}", repo.name, e);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
for (name, pkg) in &packages {
|
||||
if name.contains(&query) || pkg.package.description.to_lowercase().contains(&query.to_lowercase()) {
|
||||
println!(
|
||||
@@ -398,7 +416,13 @@ fn run(cli: Cli) -> Result<()> {
|
||||
// Load all repos
|
||||
let mut all_repo_packages = std::collections::HashMap::new();
|
||||
for repo in &config.repos {
|
||||
let repo_pkgs = resolver::DependencyGraph::load_repo(&repo.path)?;
|
||||
let repo_pkgs = match resolver::DependencyGraph::load_repo(&repo.path) {
|
||||
Ok(pkgs) => pkgs,
|
||||
Err(e) => {
|
||||
eprintln!("Warning: failed to load repo '{}': {}", repo.name, e);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
all_repo_packages.extend(repo_pkgs);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,8 +84,21 @@ impl DependencyGraph {
|
||||
for entry in std::fs::read_dir(repo_dir)
|
||||
.with_context(|| format!("Failed to read repo: {}", repo_dir.display()))?
|
||||
{
|
||||
let entry = entry?;
|
||||
if !entry.file_type()?.is_dir() {
|
||||
let entry = match entry {
|
||||
Ok(e) => e,
|
||||
Err(e) => {
|
||||
log::warn!("Skipping unreadable entry in {}: {}", repo_dir.display(), e);
|
||||
continue;
|
||||
}
|
||||
};
|
||||
let is_dir = match entry.file_type() {
|
||||
Ok(ft) => ft.is_dir(),
|
||||
Err(_) => {
|
||||
// Fallback: try metadata (follows symlinks)
|
||||
entry.path().is_dir()
|
||||
}
|
||||
};
|
||||
if !is_dir {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user