hadolint-2.0.0: src/Hadolint/Rule/DL3024.hs
module Hadolint.Rule.DL3024 (rule) where
import qualified Data.Set as Set
import Hadolint.Rule
import Language.Docker.Syntax
rule :: Rule args
rule = customRule check (emptyState Set.empty)
where
code = "DL3024"
severity = DLErrorC
message = "FROM aliases (stage names) must be unique"
check line st (From BaseImage {alias = Just (ImageAlias als)}) =
let newState = st |> modify (Set.insert als)
in if Set.member als (state st)
then newState |> addFail CheckFailure {..}
else newState
check _ st _ = st
{-# INLINEABLE rule #-}