Name | Last modified | Size | Description | |
---|---|---|---|---|
Parent Directory | - | |||
_darcs/ | 2010-05-12 21:30 | - | ||
docs/ | 2010-05-12 21:30 | - | ||
examples/ | 2010-05-12 21:30 | - | ||
src/ | 2010-05-12 21:30 | - | ||
tests/ | 2010-05-12 21:30 | - | ||
Setup.lhs | 2010-05-12 21:30 | 72 | ||
Makefile | 2010-05-12 21:30 | 92 | ||
hinotify.cabal | 2010-05-12 21:30 | 1.0K | ||
hinotify.css | 2010-05-12 21:30 | 1.4K | ||
LICENSE | 2010-05-12 21:30 | 1.4K | ||
ANNOUNCE | 2010-05-12 21:30 | 1.6K | ||
README | 2010-05-12 21:30 | 2.5K | ||
README.html | 2010-05-12 21:30 | 4.5K | ||
hinotify, a library to inotify which has been part of the Linux kernel since 2.6.13.
inotify provides file system event notification, simply add a watcher to a file or directory and get an event when it is accessed or modified.
This module is named hinotify
.
See example code in the examples
directory, distributed with the source code.
inotify.h
from glibc
rather than from the linux headers, as recommended upstream.tests/
The API basically consists of:
initINotify :: IO INotify
addWatch :: INotify
-> [EventVariety] -- different events to listen on
-> FilePath -- file/directory to watch
-> (Event -> IO ()) -- event handler
-> IO WatchDescriptor
removeWatch :: INotify -> WatchDescriptor -> IO ()
A sample program:
import System.Directory
import System.IO
import System.INotify
main :: IO ()
main = do
inotify <- initINotify
print inotify
home <- getHomeDirectory
wd <- addWatch
inotify
[Open,Close,Access,Modify,Move]
home
print
print wd
putStrLn "Listens to your home directory. Hit enter to terminate."
getLine
removeWatch inotify wd
The code is available via the homepage, and via darcs:
darcs get --partial http://haskell.org/~kolmodin/code/hinotify/
The API is available online.
I’m most grateful for feedback on the API, and what else you might have to suggest.
This software is released under a BSD-style license. See LICENSE for more details.
Copyright © 2007 Lennart Kolmodin