Używam pakietu FSNotify do oglądania mojego systemu plików w celu zmiany plików oznaczania, tak, że mogę je automatycznie uruchomić przez Pandoc. Mam jednak problem ze złym wyjściem menedżera.Monitorowanie systemu plików za pomocą Haskella
Jak się stoi, mój kod jest oparty na Yesod's use of the same package:
module Main where
import System.FSNotify
import Filesystem (getWorkingDirectory)
import System.Exit
import Control.Concurrent
main = do
cwd <- getWorkingDirectory
putStrLn "Watching current directory, press RETURN to exit."
withManager $ \man -> do
_ <- forkIO $ do
watchTree man cwd (const True) $ \fp -> print fp
_ <- getLine
exitSuccess
Gdy używam runhaskell
, program działa idealnie, ale gdybym go skompilować do pliku wykonywalnego (z użyciem ghc --make
), po naciśnięciu enter mój terminal przestaje reagować. Kompiluję to na 64-bitowym Windows 7.
EDYCJA: Completed code. Cóż, nie do końca ukończone - jest jeszcze coś, co chcę z tym zrobić - ale działa.
Dzięki, działa jak urok - gdy zdałem sobie sprawę, że GHC nie przebudowuje mojego pliku wykonywalnego, ponieważ nie zmieniłem pliku źródłowego, tylko flagi kompilatora: P. –