horizon-spec-0.6.4: src/Horizon/Spec/Utils.hs
module Horizon.Spec.Utils
( callHackage
, callGit
, callTarball
, callLocal) 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, FromLocal, FromTarball))
import Horizon.Spec.Types.LocalSource (LocalSource (MkLocalSource))
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
callLocal :: Subdir -> HaskellPackage
callLocal = mkHaskellPackage . FromLocal . MkLocalSource