Safe Haskell | None |
---|
This module exports the Config
datatype, which you can use to configure the
Snap HTTP server.
- data Config m a
- data ConfigLog
- = ConfigNoLog
- | ConfigFileLog FilePath
- | ConfigIoLog (ByteString -> IO ())
- emptyConfig :: Config m a
- defaultConfig :: MonadSnap m => Config m a
- commandLineConfig :: MonadSnap m => Config m a -> IO (Config m a)
- extendedCommandLineConfig :: MonadSnap m => [OptDescr (Maybe (Config m a))] -> (a -> a -> a) -> Config m a -> IO (Config m a)
- completeConfig :: MonadSnap m => Config m a -> IO (Config m a)
- optDescrs :: MonadSnap m => Config m a -> [OptDescr (Maybe (Config m a))]
- fmapOpt :: (a -> b) -> OptDescr a -> OptDescr b
- getAccessLog :: Config m a -> Maybe ConfigLog
- getBind :: Config m a -> Maybe ByteString
- getCompression :: Config m a -> Maybe Bool
- getDefaultTimeout :: Config m a -> Maybe Int
- getErrorHandler :: Config m a -> Maybe (SomeException -> m ())
- getErrorLog :: Config m a -> Maybe ConfigLog
- getHostname :: Config m a -> Maybe ByteString
- getLocale :: Config m a -> Maybe String
- getOther :: Config m a -> Maybe a
- getPort :: Config m a -> Maybe Int
- getProxyType :: Config m a -> Maybe ProxyType
- getSSLBind :: Config m a -> Maybe ByteString
- getSSLCert :: Config m a -> Maybe FilePath
- getSSLKey :: Config m a -> Maybe FilePath
- getSSLPort :: Config m a -> Maybe Int
- getVerbose :: Config m a -> Maybe Bool
- getStartupHook :: Config m a -> Maybe (StartupInfo m a -> IO ())
- setAccessLog :: ConfigLog -> Config m a -> Config m a
- setBind :: ByteString -> Config m a -> Config m a
- setCompression :: Bool -> Config m a -> Config m a
- setDefaultTimeout :: Int -> Config m a -> Config m a
- setErrorHandler :: (SomeException -> m ()) -> Config m a -> Config m a
- setErrorLog :: ConfigLog -> Config m a -> Config m a
- setHostname :: ByteString -> Config m a -> Config m a
- setLocale :: String -> Config m a -> Config m a
- setOther :: a -> Config m a -> Config m a
- setPort :: Int -> Config m a -> Config m a
- setProxyType :: ProxyType -> Config m a -> Config m a
- setSSLBind :: ByteString -> Config m a -> Config m a
- setSSLCert :: FilePath -> Config m a -> Config m a
- setSSLKey :: FilePath -> Config m a -> Config m a
- setSSLPort :: Int -> Config m a -> Config m a
- setVerbose :: Bool -> Config m a -> Config m a
- setStartupHook :: (StartupInfo m a -> IO ()) -> Config m a -> Config m a
- data StartupInfo m a
- getStartupSockets :: StartupInfo m a -> [Socket]
- getStartupConfig :: StartupInfo m a -> Config m a
Documentation
A record type which represents partial configurations (for httpServe
)
by wrapping all of its fields in a Maybe
. Values of this type are usually
constructed via its Monoid
instance by doing something like:
setPort 1234 mempty
Any fields which are unspecified in the Config
passed to httpServe
(and
this is the norm) are filled in with default values from defaultConfig
.
Data type representing the configuration of a logging target
ConfigNoLog | no logging |
ConfigFileLog FilePath | log to text file |
ConfigIoLog (ByteString -> IO ()) | log custom IO handler |
emptyConfig :: Config m aSource
defaultConfig :: MonadSnap m => Config m aSource
These are the default values for the options
:: MonadSnap m | |
=> Config m a | default configuration. This is combined with
|
-> IO (Config m a) |
extendedCommandLineConfigSource
:: MonadSnap m | |
=> [OptDescr (Maybe (Config m a))] | User options. |
-> (a -> a -> a) | State for multiple invoked user command-line options will be combined using this function. |
-> Config m a | default configuration. This is combined with
Snap's |
-> IO (Config m a) |
Returns a Config
obtained from parsing command-line options, using the
default Snap OptDescr
set as well as a list of user OptDescrs. User
OptDescrs use the "other" field (accessible using getOther
and
setOther
) to store additional command-line option state. These are
combined using a user-defined combining function.
On Unix systems, the locale is read from the LANG
environment variable.
Returns a description of the snap command line options suitable for use with System.Console.GetOpt.
getAccessLog :: Config m a -> Maybe ConfigLogSource
Path to the access log
getBind :: Config m a -> Maybe ByteStringSource
Returns the address to bind to (for http)
getCompression :: Config m a -> Maybe BoolSource
If set and set to True, compression is turned on when applicable
getDefaultTimeout :: Config m a -> Maybe IntSource
getErrorHandler :: Config m a -> Maybe (SomeException -> m ())Source
A MonadSnap action to handle 500 errors
getErrorLog :: Config m a -> Maybe ConfigLogSource
Path to the error log
getHostname :: Config m a -> Maybe ByteStringSource
The hostname of the HTTP server. This field has the same format as an HTTP
Host
header; if a Host
header came in with the request, we use that,
otherwise we default to this value specified in the configuration.
getLocale :: Config m a -> Maybe StringSource
Gets the locale to use. Locales are used on Unix only, to set the
LANG
/LC_ALL
/etc. environment variable. For instance if you set the
locale to "en_US
", we'll set the relevant environment variables to
"en_US.UTF-8
".
getProxyType :: Config m a -> Maybe ProxyTypeSource
getSSLBind :: Config m a -> Maybe ByteStringSource
Returns the address to bind to (for https)
getSSLCert :: Config m a -> Maybe FilePathSource
Path to the SSL certificate file
getSSLPort :: Config m a -> Maybe IntSource
Returns the port to listen on (for https)
getVerbose :: Config m a -> Maybe BoolSource
Whether to write server status updates to stderr
getStartupHook :: Config m a -> Maybe (StartupInfo m a -> IO ())Source
A startup hook is run after the server initializes but before user request
processing begins. The server passes, through a StartupInfo
object, the
startup hook a list of the sockets it is listening on and the final Config
object completed after command-line processing.
setAccessLog :: ConfigLog -> Config m a -> Config m aSource
setBind :: ByteString -> Config m a -> Config m aSource
setCompression :: Bool -> Config m a -> Config m aSource
setDefaultTimeout :: Int -> Config m a -> Config m aSource
setErrorHandler :: (SomeException -> m ()) -> Config m a -> Config m aSource
setErrorLog :: ConfigLog -> Config m a -> Config m aSource
setHostname :: ByteString -> Config m a -> Config m aSource
setProxyType :: ProxyType -> Config m a -> Config m aSource
setSSLBind :: ByteString -> Config m a -> Config m aSource
setSSLCert :: FilePath -> Config m a -> Config m aSource
setSSLPort :: Int -> Config m a -> Config m aSource
setVerbose :: Bool -> Config m a -> Config m aSource
setStartupHook :: (StartupInfo m a -> IO ()) -> Config m a -> Config m aSource
data StartupInfo m a Source
Arguments passed to setStartupHook
.
getStartupSockets :: StartupInfo m a -> [Socket]Source
getStartupConfig :: StartupInfo m a -> Config m aSource