24 lines
837 B
Haskell
24 lines
837 B
Haskell
module Main where
|
|
|
|
import Data.Time.Clock.POSIX (getPOSIXTime)
|
|
import System.Directory (createDirectoryIfMissing)
|
|
import Hakyll (hakyll)
|
|
import Site (rules)
|
|
|
|
-- | Stamp the start of this build into @data/build-stamp.txt@ before
|
|
-- Hakyll scans the provider directory. The file therefore always exists
|
|
-- and always differs from the previous run. The telemetry pages
|
|
-- (@/build/@, @/stats/@) @load@ it as a dependency so Hakyll recompiles
|
|
-- them on every build instead of serving a stale cached copy when no
|
|
-- tracked content changed. See build/Stats.hs and build/Site.hs.
|
|
writeBuildStamp :: IO ()
|
|
writeBuildStamp = do
|
|
createDirectoryIfMissing True "data"
|
|
t <- getPOSIXTime
|
|
writeFile "data/build-stamp.txt" (show t ++ "\n")
|
|
|
|
main :: IO ()
|
|
main = do
|
|
writeBuildStamp
|
|
hakyll rules
|