summaryrefslogtreecommitdiff
path: root/src/WWW/Base.hs
blob: 7c752daf1775a340bea3f2be66c8b0596c7bfc31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
module WWW.Base
    ( baseConfig
    , baseHakyll
    , domain
    , wwwRoot
    ) where

import Prolog
import Hakyll
import System.Process


-- | mathematicaster.org
domain :: IsString s => s
domain = "mathematicaster.org"

-- | /var/www
wwwRoot :: IsString s => s
wwwRoot = "/var/www"

baseConfig :: FilePath -> Configuration
baseConfig p = defaultConfiguration
    { destinationDirectory = "output"
    , storeDirectory = ".cache"
    , tmpDirectory = ".cache/tmp"
    , deploySite = \cfg -> rawSystem "rsync"
        [ "-aP"
        , "--delete-after"
        , "--chown=nginx:nginx"
        , destinationDirectory cfg <> "/"
        , "root@" <> domain <> ":" <> wwwRoot <> "/" <> p
        ]
    }

baseHakyll :: MonadIO m => FilePath -> Rules a -> m ()
baseHakyll p = liftIO . hakyllWith (baseConfig p)