1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! Hadolint-RS: Native Rust Dockerfile Linter
//!
//! A Rust translation of the Hadolint Dockerfile linter.
//!
//! # Attribution
//!
//! This module is a derivative work based on [Hadolint](https://github.com/hadolint/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
//!
//! ```rust,ignore
//! 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-export main types and functions
pub use HadolintConfig;
pub use ;
pub use ;
pub use ;