hadolint-2.0.0: src/Hadolint/Rule/DL3051.hs
module Hadolint.Rule.DL3051 (rule) where
import qualified Data.Map as Map
import qualified Data.Text as Text
import Hadolint.Rule
import Language.Docker.Syntax
rule :: LabelSchema -> Rule args
rule labelschema = mconcat $ fmap labelIsNotEmptyRule (Map.keys labelschema)
{-# INLINEABLE rule #-}
labelIsNotEmptyRule :: LabelName -> Rule args
labelIsNotEmptyRule label = simpleRule code severity message check
where
code = "DL3051"
severity = DLWarningC
message = "label `" <> label <> "` is empty."
check (Label pairs) = null $ getEmptyLabels label pairs
check _ = True
getEmptyLabels :: LabelName -> Pairs -> Pairs
getEmptyLabels lbl prs = [(l, v) | (l, v) <- prs, l == lbl, Text.null v]