diff options
Diffstat (limited to 'src/Hakyll/Web')
-rw-r--r-- | src/Hakyll/Web/Preview/Poll.hs | 43 | ||||
-rw-r--r-- | src/Hakyll/Web/Preview/Server.hs | 40 |
2 files changed, 0 insertions, 83 deletions
diff --git a/src/Hakyll/Web/Preview/Poll.hs b/src/Hakyll/Web/Preview/Poll.hs deleted file mode 100644 index 7ea033f..0000000 --- a/src/Hakyll/Web/Preview/Poll.hs +++ /dev/null @@ -1,43 +0,0 @@ --- | Interval-based implementation of preview polling --- -{-# LANGUAGE CPP #-} -module Hakyll.Web.Preview.Poll - ( previewPoll - ) where - -import Control.Applicative ((<$>)) -import Control.Concurrent (threadDelay) -import Control.Monad (filterM) -#if MIN_VERSION_directory(1,2,0) -import Data.Time (getCurrentTime) -#else -import System.Time (getClockTime) -#endif -import System.Directory (getModificationTime, doesFileExist) - -import Hakyll.Core.Configuration - --- | A preview thread that periodically recompiles the site. --- -previewPoll :: Configuration -- ^ Configuration - -> IO [FilePath] -- ^ Updating action - -> IO () -- ^ Can block forever -previewPoll _ update = do -#if MIN_VERSION_directory(1,2,0) - time <- getCurrentTime -#else - time <- getClockTime -#endif - loop time =<< update - where - delay = 1000000 - loop time files = do - threadDelay delay - files' <- filterM doesFileExist files - filesTime <- case files' of - [] -> return time - _ -> maximum <$> mapM getModificationTime files' - - if filesTime > time || files' /= files - then loop filesTime =<< update - else loop time files' diff --git a/src/Hakyll/Web/Preview/Server.hs b/src/Hakyll/Web/Preview/Server.hs deleted file mode 100644 index 15a1a33..0000000 --- a/src/Hakyll/Web/Preview/Server.hs +++ /dev/null @@ -1,40 +0,0 @@ --- | Implements a basic static file server for previewing options --- -{-# LANGUAGE OverloadedStrings #-} -module Hakyll.Web.Preview.Server - ( staticServer - ) where - -import Control.Monad.Trans (liftIO) - -import qualified Snap.Core as Snap -import qualified Snap.Http.Server as Snap -import qualified Snap.Util.FileServe as Snap - --- | Serve a given directory --- -static :: FilePath -- ^ Directory to serve - -> (FilePath -> IO ()) -- ^ Pre-serve hook - -> Snap.Snap () -static directory preServe = - Snap.serveDirectoryWith directoryConfig directory - where - directoryConfig :: Snap.DirectoryConfig Snap.Snap - directoryConfig = Snap.fancyDirectoryConfig - { Snap.preServeHook = liftIO . preServe - } - --- | Main method, runs a static server in the given directory --- -staticServer :: FilePath -- ^ Directory to serve - -> (FilePath -> IO ()) -- ^ Pre-serve hook - -> Int -- ^ Port to listen on - -> IO () -- ^ Blocks forever -staticServer directory preServe port = - Snap.httpServe config $ static directory preServe - where - -- Snap server config - config = Snap.setPort port - $ Snap.setAccessLog Snap.ConfigNoLog - $ Snap.setErrorLog Snap.ConfigNoLog - $ Snap.emptyConfig |