Skip to content

Commit 5da510b

Browse files
Alex Holmbergclaude
authored andcommitted
style: run cargo fmt --all
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent f85d14d commit 5da510b

258 files changed

Lines changed: 18051 additions & 6664 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 36 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ clap = { version = "4", features = ["derive", "env", "cargo"] }
2525
serde = { version = "1", features = ["derive"] }
2626
serde_json = "1"
2727
serde_yaml = "0.9"
28+
yaml-rust2 = "0.9" # YAML parsing with position tracking for dclint
2829
toml = "0.9"
2930
log = "0.4"
3031
env_logger = "0.11"

docker-compose-linter

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit c49696ea1803810813326ed5ec99a4967263a1f4

examples/check_vulnerabilities.rs

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
use syncable_cli::analyzer::dependency_parser::{DependencyParser};
2-
use syncable_cli::analyzer::vulnerability::VulnerabilityChecker;
31
use std::path::Path;
2+
use syncable_cli::analyzer::dependency_parser::DependencyParser;
3+
use syncable_cli::analyzer::vulnerability::VulnerabilityChecker;
44

55
#[tokio::main]
66
async fn main() -> Result<(), Box<dyn std::error::Error>> {
77
env_logger::init();
8-
8+
99
let project_path = Path::new(".");
1010
println!("🔍 Checking vulnerabilities in: {}", project_path.display());
11-
11+
1212
// Parse dependencies
1313
let parser = DependencyParser::new();
1414
let dependencies = parser.parse_all_dependencies(project_path)?;
15-
15+
1616
if dependencies.is_empty() {
1717
println!("No dependencies found.");
1818
return Ok(());
1919
}
20-
20+
2121
// Print found dependencies
2222
for (lang, deps) in &dependencies {
2323
println!("\n{:?} dependencies: {}", lang, deps.len());
@@ -28,16 +28,21 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2828
println!(" ... and {} more", deps.len() - 5);
2929
}
3030
}
31-
31+
3232
// Check vulnerabilities
3333
println!("\n🛡️ Checking for vulnerabilities...");
3434
let checker = VulnerabilityChecker::new();
35-
let report = checker.check_all_dependencies(&dependencies, project_path).await?;
36-
35+
let report = checker
36+
.check_all_dependencies(&dependencies, project_path)
37+
.await?;
38+
3739
println!("\n📊 Vulnerability Report");
38-
println!("Checked at: {}", report.checked_at.format("%Y-%m-%d %H:%M:%S UTC"));
40+
println!(
41+
"Checked at: {}",
42+
report.checked_at.format("%Y-%m-%d %H:%M:%S UTC")
43+
);
3944
println!("Total vulnerabilities: {}", report.total_vulnerabilities);
40-
45+
4146
if report.total_vulnerabilities > 0 {
4247
println!("\nSeverity breakdown:");
4348
if report.critical_count > 0 {
@@ -52,10 +57,13 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
5257
if report.low_count > 0 {
5358
println!(" LOW: {}", report.low_count);
5459
}
55-
60+
5661
println!("\nVulnerable dependencies:");
5762
for vuln_dep in &report.vulnerable_dependencies {
58-
println!("\n 📦 {} v{} ({:?})", vuln_dep.name, vuln_dep.version, vuln_dep.language);
63+
println!(
64+
"\n 📦 {} v{} ({:?})",
65+
vuln_dep.name, vuln_dep.version, vuln_dep.language
66+
);
5967
for vuln in &vuln_dep.vulnerabilities {
6068
println!(" ⚠️ {} [{:?}] - {}", vuln.id, vuln.severity, vuln.title);
6169
if let Some(ref cve) = vuln.cve {
@@ -69,6 +77,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
6977
} else {
7078
println!("\n✅ No known vulnerabilities found!");
7179
}
72-
80+
7381
Ok(())
74-
}
82+
}
Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,82 @@
11
use env_logger;
2-
use log::{info, error};
2+
use log::{error, info};
3+
use std::env;
4+
use std::path::Path;
35
use syncable_cli::analyzer::dependency_parser::{DependencyParser, Language};
46
use syncable_cli::analyzer::vulnerability::VulnerabilityChecker;
5-
use std::path::Path;
6-
use std::env;
77

88
#[tokio::main]
99
async fn main() -> Result<(), Box<dyn std::error::Error>> {
1010
// Enable debug logging
1111
env_logger::Builder::from_default_env()
1212
.filter_level(log::LevelFilter::Debug)
1313
.init();
14-
14+
1515
// Get project path from command line args or use current directory
1616
let args: Vec<String> = env::args().collect();
1717
let project_path = if args.len() > 1 {
1818
Path::new(&args[1])
1919
} else {
2020
Path::new(".")
2121
};
22-
23-
info!("🔍 Debug Java vulnerability scanning in: {}", project_path.display());
24-
22+
23+
info!(
24+
"🔍 Debug Java vulnerability scanning in: {}",
25+
project_path.display()
26+
);
27+
2528
// Parse dependencies
2629
let parser = DependencyParser::new();
2730
info!("📦 Parsing dependencies...");
2831
let dependencies = parser.parse_all_dependencies(project_path)?;
29-
32+
3033
if dependencies.is_empty() {
3134
error!("❌ No dependencies found!");
3235
info!("Make sure you're in a Java project directory with:");
3336
info!(" - pom.xml (Maven project)");
3437
info!(" - build.gradle or build.gradle.kts (Gradle project)");
3538
return Ok(());
3639
}
37-
40+
3841
// Show detailed dependency information
3942
info!("📊 Found dependencies in {} languages:", dependencies.len());
4043
for (lang, deps) in &dependencies {
4144
info!(" {:?}: {} dependencies", lang, deps.len());
4245
if *lang == Language::Java {
4346
info!(" Java dependencies details:");
4447
for dep in deps.iter().take(10) {
45-
info!(" - {} v{} (source: {:?})", dep.name, dep.version, dep.source);
48+
info!(
49+
" - {} v{} (source: {:?})",
50+
dep.name, dep.version, dep.source
51+
);
4652
}
4753
if deps.len() > 10 {
4854
info!(" ... and {} more", deps.len() - 10);
4955
}
5056
}
5157
}
52-
58+
5359
// Check if Java dependencies were found
5460
if !dependencies.contains_key(&Language::Java) {
5561
error!("❌ No Java dependencies detected!");
5662
info!("Troubleshooting steps:");
5763
info!("1. Make sure you're in a Java project directory");
5864
info!("2. For Maven projects: ensure pom.xml exists and has <dependencies> section");
5965
info!("3. For Gradle projects: ensure build.gradle exists with dependency declarations");
60-
info!("4. Run 'mvn dependency:resolve' or 'gradle build' to ensure dependencies are resolved");
66+
info!(
67+
"4. Run 'mvn dependency:resolve' or 'gradle build' to ensure dependencies are resolved"
68+
);
6169
return Ok(());
6270
}
63-
71+
6472
// Check vulnerabilities
6573
info!("🛡️ Checking for vulnerabilities...");
6674
let checker = VulnerabilityChecker::new();
67-
68-
match checker.check_all_dependencies(&dependencies, project_path).await {
75+
76+
match checker
77+
.check_all_dependencies(&dependencies, project_path)
78+
.await
79+
{
6980
Ok(report) => {
7081
info!("✅ Vulnerability scan completed successfully!");
7182
info!("📊 Results:");
@@ -74,12 +85,16 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
7485
info!(" High: {}", report.high_count);
7586
info!(" Medium: {}", report.medium_count);
7687
info!(" Low: {}", report.low_count);
77-
88+
7889
if report.total_vulnerabilities > 0 {
7990
info!("🚨 Vulnerable dependencies:");
8091
for vuln_dep in &report.vulnerable_dependencies {
81-
info!(" - {} v{} ({} vulnerabilities)",
82-
vuln_dep.name, vuln_dep.version, vuln_dep.vulnerabilities.len());
92+
info!(
93+
" - {} v{} ({} vulnerabilities)",
94+
vuln_dep.name,
95+
vuln_dep.version,
96+
vuln_dep.vulnerabilities.len()
97+
);
8398
for vuln in &vuln_dep.vulnerabilities {
8499
info!(" • {} [{:?}] - {}", vuln.id, vuln.severity, vuln.title);
85100
}
@@ -89,7 +104,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
89104
info!("This could mean:");
90105
info!(" - Your dependencies are up to date and secure");
91106
info!(" - The vulnerability scanner (grype) didn't find any issues");
92-
info!(" - The dependency versions couldn't be matched with vulnerability databases");
107+
info!(
108+
" - The dependency versions couldn't be matched with vulnerability databases"
109+
);
93110
}
94111
}
95112
Err(e) => {
@@ -100,6 +117,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
100117
info!(" - Dependencies not resolved: run 'mvn dependency:resolve'");
101118
}
102119
}
103-
120+
104121
Ok(())
105-
}
122+
}

0 commit comments

Comments
 (0)