hinotify: Haskell binding to INotify

[ bsd3, library, system ] [ Propose Tags ]

This library provides a wrapper to the Linux Kernel's inotify feature, allowing applications to subscribe to notifications when a file is accessed or modified.


[Skip to Readme]
Versions 0.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.8.1, 0.3.9, 0.3.10
Dependencies base (<3 || >=4.4 && <4.6), containers, directory, unix [details]
License BSD-3-Clause
Author Lennart Kolmodin
Maintainer Lennart Kolmodin <kolmodin@gentoo.org>
Revised Revision 1 made by GeorgeWilson at Mon Apr 9 02:36:42 UTC 2018
Category System
Home page http://haskell.org/~kolmodin/code/hinotify/README.html
Uploaded by LennartKolmodin at Sun Dec 6 14:13:17 UTC 2009
Distributions Arch:0.3.9, Debian:0.3.8.1, Fedora:0.3.9, FreeBSD:0.3.8.1, LTSHaskell:0.3.9, NixOS:0.3.10, Stackage:0.3.10, openSUSE:0.3.9
Downloads 47467 total (246 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
split-base

Choose the new smaller, split-up base package.

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hinotify-0.3.1

[back to package description]
% hinotify: inotify for Haskell
% Lennart Kolmodin <kolmodin@gentoo.org>
% December 26, 2007-2009

About
-----

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]: http://www.kernel.org/pub/linux/kernel/people/rml/inotify/

News
----

**hinotify 0.3.1**
:   * Use `inotify.h` from `glibc` rather than from the linux headers, as
      recommended upstream.

**hinotify 0.3**
:   * Compiles with GHC 6.12, GHC 6.10.4, GHC 6.8.2 and GHC 6.6.1

**hinotify 0.2**
:   * Updates to the API
        - Function names is now in semiCamelCase
        - Restructure event parameters to make it more consistent
    * Small test suit in `tests/`
    * Compiles with GHC 6.8.2 and GHC 6.6.1
    * Requires Cabal 1.2

**hinotify 0.1**
:   Initial release

API
---

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


Download
--------

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.

Author
------

Lennart Kolmodin

`kolmodin at gentoo.org`

Legal
-----

This software is released under a BSD-style license. See LICENSE for
more details.

Copyright &copy; 2007 Lennart Kolmodin

[homepage]: http://haskell.org/~kolmodin/code/hinotify/

[API]: http://hackage.haskell.org/packages/archive/hinotify/latest/doc/html/System-INotify.html