Module hadolint

Module hadolint 

Source
Expand description

Hadolint-RS: Native Rust Dockerfile Linter

A Rust translation of the Hadolint Dockerfile linter.

§Attribution

This module is a derivative work based on Hadolint, originally written in Haskell by Lukas Martinelli and contributors.

Original Project: https://github.com/hadolint/hadolint Original License: GPL-3.0 Original Copyright: Copyright (c) 2016-2024 Lukas Martinelli and contributors

This Rust translation is licensed under GPL-3.0 as required by the original license. See THIRD_PARTY_NOTICES.md and LICENSE files for full details.

§Features

  • Dockerfile parsing into an AST
  • Configurable linting rules (DL3xxx, DL4xxx)
  • ShellCheck-inspired RUN instruction analysis
  • Inline pragma support for ignoring rules

§Example

use syncable_cli::analyzer::hadolint::{lint, HadolintConfig, LintResult};

let dockerfile = r#"
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
"#;

let config = HadolintConfig::default();
let result = lint(dockerfile, &config);

for failure in result.failures {
    println!("{}: {} - {}", failure.line, failure.code, failure.message);
}

Re-exports§

pub use config::HadolintConfig;
pub use formatter::Formatter;
pub use formatter::OutputFormat;
pub use formatter::format_result;
pub use formatter::format_result_to_string;
pub use lint::LintResult;
pub use lint::lint;
pub use lint::lint_file;
pub use types::CheckFailure;
pub use types::RuleCode;
pub use types::Severity;

Modules§

config
Configuration for the hadolint-rs linter.
formatter
Output formatters for hadolint-rs lint results.
lint
Main linting orchestration for hadolint-rs.
parser
Dockerfile parser module.
pragma
Pragma parsing for inline rule ignores.
rules
Rule system framework for hadolint-rs.
shell
Shell parsing module for hadolint-rs.
types
Core types for the hadolint-rs linter.