packages feed

horizon-spec-0.9.0: src/Horizon/Spec/Utils.hs

module Horizon.Spec.Utils
  ( callHackage
  , callGit
  , callTarball
  ) where

import           Horizon.Spec.Types.GitSource      (GitSource (MkGitSource))
import           Horizon.Spec.Types.HackageSource  (HackageSource (MkHackageSource))
import           Horizon.Spec.Types.HaskellPackage (HaskellPackage,
                                                    mkHaskellPackage)
import           Horizon.Spec.Types.HaskellSource  (HaskellSource (FromGit, FromHackage, FromTarball))
import           Horizon.Spec.Types.Name           (Name)
import           Horizon.Spec.Types.Repo           (Repo)
import           Horizon.Spec.Types.Revision       (Revision)
import           Horizon.Spec.Types.Subdir         (Subdir)
import           Horizon.Spec.Types.TarballSource  (TarballSource (MkTarballSource))
import           Horizon.Spec.Types.Url            (Url)
import           Horizon.Spec.Types.Version        (Version)

callHackage :: Name -> Version -> HaskellPackage
callHackage n = mkHaskellPackage . FromHackage . MkHackageSource n

callGit :: Repo -> Revision -> Maybe Subdir -> HaskellPackage
callGit u x d = mkHaskellPackage . FromGit $ MkGitSource u x d

callTarball :: Url -> HaskellPackage
callTarball = mkHaskellPackage . FromTarball . MkTarballSource