Skip to content

Commit add9024

Browse files
feat: add the cppcheck runner
just the rust code for the cppcheck deepsource runner
1 parent 83e2957 commit add9024

File tree

9 files changed

+1049
-0
lines changed

9 files changed

+1049
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target

Cargo.lock

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

Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[package]
2+
name = "cppcheck-deepsource"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]
9+
# serialize & deserialize
10+
serde = { version = "1.0.144", features = ["derive"] }
11+
# json support
12+
serde_json = "1.0.85"
13+
log = { version = "0.4.17" }
14+
atty = "0.2.14"
15+
walkdir = "2.3.2"
16+
quick-xml = { version = "0.28.0", features = ["serialize"] }
17+

src/config.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
use std::path::PathBuf;
2+
3+
use serde::Deserialize;
4+
5+
#[derive(Default, Deserialize, Debug)]
6+
pub struct AnalyzerConfig {
7+
files: Vec<PathBuf>,
8+
#[serde(default)]
9+
pub analyzer_meta: AnalyzerMeta,
10+
}
11+
12+
impl AnalyzerConfig {
13+
pub fn cxx_files(self) -> Vec<PathBuf> {
14+
self.files
15+
.into_iter()
16+
.filter(|f| f.is_file())
17+
.filter(|f| !f.is_symlink())
18+
// ignore files > ~25MB in size
19+
.filter(|f| {
20+
!f.metadata()
21+
.map(|x| x.len() > 25_000_000)
22+
.unwrap_or_default()
23+
})
24+
.collect()
25+
}
26+
}
27+
28+
#[derive(Deserialize, Default, Debug)]
29+
pub struct AnalyzerMeta {
30+
pub name: String,
31+
pub enabled: bool,
32+
}

0 commit comments

Comments
 (0)