mirror of
https://github.com/urbit/shrub.git
synced 2024-12-30 15:44:03 +03:00
48 lines
1.0 KiB
Haskell
48 lines
1.0 KiB
Haskell
{-|
|
|
Pier Configuration
|
|
-}
|
|
module Urbit.King.Config where
|
|
|
|
import Urbit.Prelude
|
|
|
|
{-|
|
|
All the configuration data revolving around a ship and the current
|
|
execution options.
|
|
-}
|
|
data PierConfig = PierConfig
|
|
{ _pcPierPath :: FilePath
|
|
, _pcDryRun :: Bool
|
|
} deriving (Show)
|
|
|
|
makeLenses ''PierConfig
|
|
|
|
class HasPierConfig env where
|
|
pierConfigL :: Lens' env PierConfig
|
|
|
|
pierPathL ∷ HasPierConfig a => Lens' a FilePath
|
|
pierPathL = pierConfigL . pcPierPath
|
|
|
|
dryRunL :: HasPierConfig a => Lens' a Bool
|
|
dryRunL = pierConfigL . pcDryRun
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
data NetMode
|
|
= NMNone
|
|
| NMLocalhost
|
|
| NMNormal
|
|
deriving (Eq, Ord, Show)
|
|
|
|
data NetworkConfig = NetworkConfig
|
|
{ _ncNetMode :: NetMode
|
|
, _ncAmesPort :: Maybe Word16
|
|
, _ncHttpPort :: Maybe Word16
|
|
, _ncHttpsPort :: Maybe Word16
|
|
, _ncLocalPort :: Maybe Word16
|
|
} deriving (Show)
|
|
|
|
makeLenses ''NetworkConfig
|
|
|
|
class HasNetworkConfig env where
|
|
networkConfigL :: Lens' env NetworkConfig
|