@@ -7,11 +7,11 @@ module Hakyll.Web.Preview.Poll
8import Control.Applicative ((<$>))
8import Control.Applicative ((<$>))
9import Control.Concurrent (threadDelay)
9import Control.Concurrent (threadDelay)
10−import Control.Monad (when)
10+import Control.Monad (when, filterM)
11import System.Time (getClockTime)
11import System.Time (getClockTime)
12import Data.Set (Set)
12import Data.Set (Set)
13import qualified Data.Set as S
13import qualified Data.Set as S
14−import System.Directory (getModificationTime)
14+import System.Directory (getModificationTime, doesFileExist)
16import Hakyll.Core.Configuration
16import Hakyll.Core.Configuration
17import Hakyll.Core.Identifier
17import Hakyll.Core.Identifier
@@ -31,6 +31,7 @@ previewPoll _ resources callback = do
31 delay = 1000000
31 delay = 1000000
32 loop files time = do
32 loop files time = do
33 threadDelay delay
33 threadDelay delay
34+ files' <- filterM doesFileExist files
34− modified <- any (time <) <$> mapM getModificationTime files
35+ modified <- any (time <) <$> mapM getModificationTime files'
35− when modified callback
36+ when (modified || files' /= files) callback
36− loop files =<< getClockTime
37+ loop files' =<< getClockTime