-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings to the nix package manager -- -- Use the nix package manager from Haskell. All modules are designed to -- be imported qualified. @package libnix @version 0.3.0.0 module Foreign.Nix.Shellout.Types -- | Calls a command that returns an error and the whole stderr on failure. newtype NixAction e a NixAction :: ExceptT (NixActionError e) IO a -> NixAction e a [unNixAction] :: NixAction e a -> ExceptT (NixActionError e) IO a -- | Combines the standard error of running a command with a more semantic -- error type one should match on first. data NixActionError e NixActionError :: Text -> e -> NixActionError e [actionStderr] :: NixActionError e -> Text [actionError] :: NixActionError e -> e -- | Run a NixAction without having to go through ExceptT -- first. runNixAction :: NixAction e a -> IO (Either (NixActionError e) a) -- | A path in the nix store. It carries a phantom a to -- differentiate between Derivation files and Realized -- paths. newtype StorePath a StorePath :: FilePath -> StorePath a [unStorePath] :: StorePath a -> FilePath -- | A nix derivation is a complete build instruction that can be realized. data Derivation -- | Once a derivation is realized, the finished output can be used. data Realized instance GHC.Base.Functor Foreign.Nix.Shellout.Types.NixActionError instance GHC.Show.Show e => GHC.Show.Show (Foreign.Nix.Shellout.Types.NixActionError e) instance Control.Monad.IO.Class.MonadIO (Foreign.Nix.Shellout.Types.NixAction e) instance GHC.Base.Monad (Foreign.Nix.Shellout.Types.NixAction e) instance GHC.Base.Applicative (Foreign.Nix.Shellout.Types.NixAction e) instance GHC.Base.Functor (Foreign.Nix.Shellout.Types.NixAction e) instance GHC.Show.Show (Foreign.Nix.Shellout.Types.StorePath a) instance GHC.Classes.Eq (Foreign.Nix.Shellout.Types.StorePath a) instance Data.Bifunctor.Bifunctor Foreign.Nix.Shellout.Types.NixAction -- | Calls to the nix-prefetch-X utilities, to parse their output -- into nice reusable data types. module Foreign.Nix.Shellout.Prefetch -- | Runs nix-prefetch-url. url :: UrlOptions -> NixAction PrefetchError (Sha256, StorePath Realized) data UrlOptions UrlOptions :: Url -> Bool -> Maybe Text -> Maybe Sha256 -> UrlOptions -- | the URL [urlUrl] :: UrlOptions -> Url -- | whether to unpack before hashing (useful for prefetching -- fetchTarball) [urlUnpack] :: UrlOptions -> Bool -- | name of the store path [urlName] :: UrlOptions -> Maybe Text -- | the hash we are expecting [urlExpectedHash] :: UrlOptions -> Maybe Sha256 -- | Takes the URL, doesn’t unpack and uses the default name. defaultUrlOptions :: Url -> UrlOptions -- | Runs nix-prefetch-git. git :: GitOptions -> NixAction PrefetchError GitOutput data GitOptions GitOptions :: Url -> Maybe Text -> Maybe Sha256 -> Bool -> Bool -> Bool -> GitOptions -- | the URL [gitUrl] :: GitOptions -> Url -- | a git revision (hash, branch name, tag, ref, …) [gitRev] :: GitOptions -> Maybe Text -- | the hash we are expecting [gitExpectedHash] :: GitOptions -> Maybe Sha256 -- | whether to do a deep instead of a shallow (--depth=1) git -- clone [gitDeepClone] :: GitOptions -> Bool -- | whether to keep .git directories [gitLeaveDotGit] :: GitOptions -> Bool -- | whether to fetch submodules [gitFetchSubmodules] :: GitOptions -> Bool -- | Takes the url, mirrors the default fetchgit options in -- nixpkgs: no deep clone, no .git, fetches submodules by -- default. By default, the latest default rev is used. defaultGitOptions :: Url -> GitOptions data GitOutput GitOutput :: Text -> Sha256 -> StorePath Realized -> GitOutput -- | The actual revision that is used (useful if no gitRev was -- given) [gitOutputRev] :: GitOutput -> Text -- | the hash [gitOutputSha256] :: GitOutput -> Sha256 -- | the store path of the result [gitOuputPath] :: GitOutput -> StorePath Realized data PrefetchError -- | the tool’s output could not be parsed as expected PrefetchOutputMalformed :: Text -> PrefetchError -- | an expected hash was given and not valid ExpectedHashError :: PrefetchError -- | catch-all error UnknownPrefetchError :: PrefetchError -- | A descriptive type for URLs. newtype Url Url :: Text -> Url [unUrl] :: Url -> Text -- | A sha-256 hash. newtype Sha256 Sha256 :: Text -> Sha256 [unSha256] :: Sha256 -> Text -- | Run a NixAction without having to go through ExceptT -- first. runNixAction :: NixAction e a -> IO (Either (NixActionError e) a) -- | Calls a command that returns an error and the whole stderr on failure. newtype NixAction e a NixAction :: ExceptT (NixActionError e) IO a -> NixAction e a [unNixAction] :: NixAction e a -> ExceptT (NixActionError e) IO a -- | Combines the standard error of running a command with a more semantic -- error type one should match on first. data NixActionError e NixActionError :: Text -> e -> NixActionError e [actionStderr] :: NixActionError e -> Text [actionError] :: NixActionError e -> e instance GHC.Show.Show Foreign.Nix.Shellout.Prefetch.PrefetchError instance GHC.Classes.Eq Foreign.Nix.Shellout.Prefetch.PrefetchError instance Data.String.IsString Foreign.Nix.Shellout.Prefetch.Url instance GHC.Classes.Eq Foreign.Nix.Shellout.Prefetch.Url instance GHC.Show.Show Foreign.Nix.Shellout.Prefetch.Url instance Data.String.IsString Foreign.Nix.Shellout.Prefetch.Sha256 instance GHC.Classes.Eq Foreign.Nix.Shellout.Prefetch.Sha256 instance GHC.Show.Show Foreign.Nix.Shellout.Prefetch.Sha256 instance GHC.Classes.Eq Foreign.Nix.Shellout.Prefetch.GitOutput instance GHC.Show.Show Foreign.Nix.Shellout.Prefetch.GitOutput -- | Calls to the nix command line to convert textual nix expressions to -- derivations & realized storepaths. module Foreign.Nix.Shellout -- | Parse a nix expression and check for syntactic validity. parseNixExpr :: Text -> NixAction ParseError NixExpr data ParseError -- | the input string was not a syntactically valid nix expression SyntaxError :: Text -> ParseError -- | catch-all error UnknownParseError :: ParseError -- | Instantiate a parsed expression into a derivation. instantiate :: NixExpr -> NixAction InstantiateError (StorePath Derivation) data InstantiateError -- | the given expression does not evaluate to a derivaton NotADerivation :: InstantiateError -- | catch-all error UnknownInstantiateError :: InstantiateError -- | Just tests if the expression can be evaluated. That doesn’t mean it -- has to instantiate however. eval :: NixExpr -> NixAction InstantiateError () -- | Finally derivations are realized into full store outputs. This will -- typically take a while so it should be executed asynchronously. realize :: StorePath Derivation -> NixAction RealizeError (StorePath Realized) data RealizeError UnknownRealizeError :: RealizeError -- | Copy the given file or folder to the nix store and return it’s path. addToStore :: FilePath -> NixAction RealizeError (StorePath Realized) -- | A convenience function to directly realize a nix expression. Any -- errors are put into a combined error type. parseInstRealize :: Text -> NixAction NixError (StorePath Realized) -- | Combines all error types that could happen. data NixError ParseError :: ParseError -> NixError InstantiateError :: InstantiateError -> NixError RealizeError :: RealizeError -> NixError -- | A path in the nix store. It carries a phantom a to -- differentiate between Derivation files and Realized -- paths. newtype StorePath a StorePath :: FilePath -> StorePath a [unStorePath] :: StorePath a -> FilePath -- | A nix derivation is a complete build instruction that can be realized. data Derivation -- | Once a derivation is realized, the finished output can be used. data Realized -- | A sucessfully parsed nix expression. data NixExpr -- | Run a NixAction without having to go through ExceptT -- first. runNixAction :: NixAction e a -> IO (Either (NixActionError e) a) -- | Calls a command that returns an error and the whole stderr on failure. newtype NixAction e a NixAction :: ExceptT (NixActionError e) IO a -> NixAction e a [unNixAction] :: NixAction e a -> ExceptT (NixActionError e) IO a -- | Combines the standard error of running a command with a more semantic -- error type one should match on first. data NixActionError e NixActionError :: Text -> e -> NixActionError e [actionStderr] :: NixActionError e -> Text [actionError] :: NixActionError e -> e instance GHC.Show.Show Foreign.Nix.Shellout.NixExpr instance GHC.Classes.Eq Foreign.Nix.Shellout.ParseError instance GHC.Show.Show Foreign.Nix.Shellout.ParseError instance GHC.Classes.Eq Foreign.Nix.Shellout.InstantiateError instance GHC.Show.Show Foreign.Nix.Shellout.InstantiateError instance GHC.Classes.Eq Foreign.Nix.Shellout.RealizeError instance GHC.Show.Show Foreign.Nix.Shellout.RealizeError instance GHC.Classes.Eq Foreign.Nix.Shellout.NixError instance GHC.Show.Show Foreign.Nix.Shellout.NixError