shrub/pkg/king/lib/PierConfig.hs

39 lines
1.0 KiB
Haskell
Raw Normal View History

module PierConfig where
import UrbitPrelude
data NetworkingType = NetworkNone | NetworkNormal | NetworkLocalhost
-- All the configuration data revolving around a ship and the current execution
-- options.
data PierConfig = PierConfig
{ pcPierPath :: FilePath
, pcDryRun :: Bool
-- Configurable networking options
, pcNetworking :: NetworkingType
2019-10-18 01:32:06 +03:00
, pcAmesPort :: Maybe Word16
}
class HasPierConfig env where
pierConfigL :: Lens' env PierConfig
getPierPath :: (MonadReader env m, HasPierConfig env) => m FilePath
getPierPath = do
PierConfig{..} <- view pierConfigL
pure pcPierPath
getIsDryRun :: (MonadReader env m, HasPierConfig env) => m Bool
getIsDryRun = do
PierConfig{..} <- view pierConfigL
pure pcDryRun
getNetworkingType :: (MonadReader env m, HasPierConfig env) => m NetworkingType
getNetworkingType = do
PierConfig{..} <- view pierConfigL
pure pcNetworking
2019-10-18 01:32:06 +03:00
getAmesPort :: (MonadReader env m, HasPierConfig env) => m (Maybe Word16)
getAmesPort = do
PierConfig{..} <- view pierConfigL
pure pcAmesPort