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