Readme
Duplicate Code
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 '^i mport ' '^p ackage ' .
--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 .