NAME
    File::Hotfolder - recursive watch directory for new or modified files

SYNOPSIS
        use File::Hotfolder;

        # object interface
        File::Hotfolder->new(
            watch    => '/some/directory',
            callback => sub { 
                my $path = shift;
                ...
            },
        )->loop;

        # function interface
        watch( '/some/directory', callback => sub { say shift } )->loop;

        # watch a given directory and delete all new or modified files
        watch( $ARGV[0] // '.', delete  => 1, print => DELETE_FILE )->loop;

DESCRIPTION
    This module uses Linux::Inotify2 to recursively watch a directory for
    new or modified files. A callback is called on each file with its
    absolute path.

    Deletions and new subdirectories are not reported but new subdirectories
    will be watched as well.

CONFIGURATION
    watch
        Base directory to watch

    callback
        Callback for each new or modified file. The callback is not called
        during a write but after a file has been closed.

    delete
        Delete the modified file if a callback returned a true value
        (disabled by default).

    fullname
        Return absolute path names (disabled by default).

    filter
        Filter filenames with regular expression before passing to callback.

    print
        Print to STDOUT each new directory ("print & WATCH_DIR"), each file
        path before callback execution ("print & FOUND_FILE"), and/or each
        deletion ("print & DELETE_FILE").

    scan
        First call the callback for all existing files. This does not
        guarantee that found files have been closed.

METHODS
  loop
    Watch with a manual event loop. This method never returns.

  anyevent
    Watch with AnyEvent. Returns a new AnyEvent watch.

  inotify
    Returns the internal Linux::Inotify2 object.

SEE ALSO
    File::ChangeNotify, Filesys::Notify::Simple, AnyEvent::Inotify::Simple

    AnyEvent

    rrr-server from File::Rsync::Mirror::Recent

COPYRIGHT AND LICENSE
    Copyright Jakob Voss, 2015-

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

