import logging
from fsevents import Observer, Stream
from djrandom_client import filescan

log = logging.getLogger(__name__)


class Watcher(object):

    def __init__(self, base, queue):
        self.queue = queue
        self.observer = Observer()
        self.observer.schedule(Stream(self.callback, base))
        self.observer.setDaemon(True)
        self.observer.start()

    def callback(self, subpath, mask):
        log.debug('event in %s: %x' % (subpath, mask))
        filescan.directory_scan(subpath, self.queue)

    def stop(self):
        self.observer.stop()