Exemple #1
0
if __name__ == '__main__':
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    logger.addHandler(logging.StreamHandler())
    hostname = socket.gethostname()
    z = ZOCP("zinotify@{0}".format(hostname))
    z.register_string("watchdir", "/tmp", "rw")
    z.register_string("file", "", 're')
    z.start()

    # setup inotify
    i = pyinotify.INotifyWrapper.create()
    ifd = i._inotify_init()
    # add a directory to watch
    iwd = i.inotify_add_watch( ifd, z.get_value('watchdir'), pyinotify.IN_DELETE )

    zpoller = zmq.Poller()
    zpoller.register(ifd, zmq.POLLIN)
    zpoller.register(z.inbox, zmq.POLLIN)
    
    def handle_modified(peer, name, data, *args, **kwargs):
        global iwd
        global ifd
        print(data, name, "watchdir" in data.keys())
        if "watchdir" in data.keys():
            logger.debug("watchdir modified to {1} by {0}".format(peer, data))
            # stop current watch
            i.inotify_rm_watch(ifd, iwd)
            # start new watch
            iwd = i.inotify_add_watch( ifd, z.get_value('watchdir'), pyinotify.IN_DELETE )