#duplicate #scanner #finder #code

app duplicate_code

A tool for parsing directories scanning all the files within to find duplicate segments of code across files

9 releases (breaking)

0.8.1 May 7, 2021
0.8.0 Dec 29, 2020
0.7.0 Dec 27, 2020

#1141 in Development tools

AGPL-3.0

36KB
904 lines

Duplicate Code

crates.io pipeline status Conventional Commits License: AGPL v3

A tool for parsing directories scanning all the files within to find duplicate segments of code across files.

Content

Usage

Duplicate Code scans the current directory and all sub-directories to find every file, then each file is compared against all the other files to find duplicate segments across the files.

Usage - Additional Flags

Flag
--ignore-line-regex Ignore every line that matches any of these provided regexes. For example, to ignore the imports and package declarations in Java code --ignore-line-regex '^import ' '^package '.
--ignore-file-regex Ignore every file that matches any of these provided regexes. For example, to all XML and CSV files --ignore-file-regex '[.]xml$' '[.]csv$'.
--minimum-successive-lines The minimum number of successive lines that must match to be considered a duplicate. The default value is 3.
--json Output all the duplicates information as single line JSON. So it can easily be stored, ingested and processed by other programs.

Usage - Logging

The crates pretty_env_logger and log are used to provide logging. The environment variable RUST_LOG can be used to set the logging level. See https://crates.io/crates/pretty_env_logger for more detailed documentation.

Compiling via Local Repository

Checkout the code repository locally, change into the repository's directory and then build via cargo. Using the --release flag produces an optimised binary but takes longer to compile.

git clone git@gitlab.com:DeveloperC/duplicate_code.git
cd duplicate_code/
cargo build --release

The compiled binary is present in target/release/duplicate_code.

Compiling via Cargo

Cargo is the Rust package manager, using the install sub-command it pulls the crate from crates.io and then compiles the binary locally. cargo install places the produced binary at $HOME/.cargo/bin/duplicate_code.

cargo install duplicate_code

Issues/Feature Requests

To report a bug/issue or request a new feature use https://gitlab.com/DeveloperC/duplicate_code/-/issues.

Dependencies

~6.5–9MB
~176K SLoC