hnix-store-core-0.4.2.0: src/System/Nix/Derivation.hs
{-# LANGUAGE OverloadedStrings #-}
module System.Nix.Derivation
( parseDerivation
, buildDerivation
)
where
import Data.Text ( Text )
import qualified Data.Text as Text
import qualified Data.Text.Lazy.Builder as Text.Lazy
( Builder )
import qualified Data.Text.Lazy.Builder as Text.Lazy.Builder
import qualified Data.Attoparsec.Text.Lazy as Text.Lazy
( Parser )
import Nix.Derivation ( Derivation )
import qualified Nix.Derivation as Derivation
import System.Nix.StorePath ( StorePath )
import qualified System.Nix.StorePath as StorePath
parseDerivation :: FilePath -> Text.Lazy.Parser (Derivation StorePath Text)
parseDerivation expectedRoot =
Derivation.parseDerivationWith
("\"" *> StorePath.pathParser expectedRoot <* "\"")
Derivation.textParser
buildDerivation :: Derivation StorePath Text -> Text.Lazy.Builder
buildDerivation =
Derivation.buildDerivationWith
(string . Text.pack . show)
string
where
string = Text.Lazy.Builder.fromText . Text.pack . show