packages feed

module-management-0.20.2: testdata/split1-expected/Debian/Repo/Package/SourceBinaryNames.hs

{-# LANGUAGE PackageImports, ScopedTypeVariables, TupleSections #-}
{-# OPTIONS -fno-warn-name-shadowing #-}
module Debian.Repo.Package.SourceBinaryNames
    ( sourceBinaryNames
    ) where

import Data.List as List (map)
import qualified Data.Text as T (unpack)
import Debian.Control (formatParagraph)
import qualified Debian.Control.Text as B (fieldValue, Paragraph)
import Debian.Relation (BinPkgName(..))
import Text.Regex (mkRegex, splitRegex)

sourceBinaryNames :: B.Paragraph -> [BinPkgName]
sourceBinaryNames paragraph =
    case B.fieldValue "Binary" paragraph of
      Just names -> List.map BinPkgName (splitRegex (mkRegex "[ ,\t\n]+") (T.unpack names))
      _ -> error ("Source package info has no 'Binary' field:\n" ++ (T.unpack . formatParagraph $ paragraph))