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