packages feed

cabal-cache-1.2.0.0: app/App/Commands/Options/Types.hs

module App.Commands.Options.Types
  ( CpOptions(..),
    PlanOptions(..),
    SyncFromArchiveOptions(..),
    SyncToArchiveOptions(..),
    VersionOptions(..),
  ) where

import Data.Set                         (Set)
import HaskellWorks.CabalCache.Location (Location)
import HaskellWorks.CabalCache.Types    (PackageId)
import HaskellWorks.Prelude
import Network.URI                      (URI)

import qualified Amazonka           as AWS
import qualified Data.List.NonEmpty as NEL

data CpOptions = CpOptions
  { region        :: AWS.Region
  , srcUri        :: URI
  , dstUri        :: URI
  , awsLogLevel   :: Maybe AWS.LogLevel
  , hostEndpoint  :: Maybe (ByteString, Int, Bool)
  } deriving (Eq, Show, Generic)

data SyncToArchiveOptions = SyncToArchiveOptions
  { region          :: AWS.Region
  , archiveUri      :: Location
  , path            :: FilePath
  , buildPath       :: FilePath
  , storePath       :: FilePath
  , storePathHash   :: Maybe String
  , threads         :: Int
  , awsLogLevel     :: Maybe AWS.LogLevel
  , hostEndpoint    :: Maybe (ByteString, Int, Bool)
  , maxRetries      :: Int
  , ignorePackages  :: Set PackageId
  } deriving (Eq, Show, Generic)

data PlanOptions = PlanOptions
  { path          :: FilePath
  , buildPath     :: FilePath
  , storePath     :: FilePath
  , storePathHash :: Maybe String
  , outputFile    :: FilePath
  } deriving (Eq, Show, Generic)

data SyncFromArchiveOptions = SyncFromArchiveOptions
  { region          :: AWS.Region
  , archiveUris     :: NEL.NonEmpty Location
  , path            :: FilePath
  , buildPath       :: FilePath
  , storePath       :: FilePath
  , storePathHash   :: Maybe String
  , threads         :: Int
  , awsLogLevel     :: Maybe AWS.LogLevel
  , hostEndpoint    :: Maybe (ByteString, Int, Bool)
  , maxRetries      :: Int
  , ignorePackages  :: Set PackageId
  } deriving (Eq, Show, Generic)

data VersionOptions = VersionOptions deriving (Eq, Show, Generic)