packages feed

hnix-store-core-0.6.0.0: src/System/Nix/Derivation.hs

module System.Nix.Derivation
  ( parseDerivation
  , buildDerivation
  )
where

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
    (show . show)
    show