# -*- coding:utf-8 -*-
import
os
import
pyinotify
from
functions
import
*
WATCH_PATH
=
''
#监控目录
if
not
WATCH_PATH:
wlog(
'Error'
,
"The WATCH_PATH setting MUST be set."
)
sys.exit()
else
:
if
os.path.exists(WATCH_PATH):
wlog(
'Watch status'
,
'Found watch path: path=%s.'
%
(WATCH_PATH))
else
:
wlog(
'Error'
,
'The watch path NOT exists, watching stop now: path=%s.'
%
(WATCH_PATH))
sys.exit()
class
OnIOHandler(pyinotify.ProcessEvent):
def
process_IN_CREATE(
self
, event):
wlog(
'Action'
,
"create file: %s "
%
os.path.join(event.path,event.name))
def
process_IN_DELETE(
self
, event):
wlog(
'Action'
,
"delete file: %s "
%
os.path.join(event.path,event.name))
def
process_IN_MODIFY(
self
, event):
wlog(
'Action'
,
"modify file: %s "
%
os.path.join(event.path,event.name))
def
auto_compile(path
=
'.'
):
wm
=
pyinotify.WatchManager()
mask
=
pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY
notifier
=
pyinotify.ThreadedNotifier(wm, OnIOHandler())
notifier.start()
wm.add_watch(path, mask,rec
=
True
,auto_add
=
True
)
wlog(
'Start Watch'
,
'Start monitoring %s'
%
path)
while
True
:
try
:
notifier.process_events()
if
notifier.check_events():
notifier.read_events()
except
KeyboardInterrupt:
notifier.stop()
break
if
__name__
=
=
"__main__"
:
auto_compile(WATCH_PATH)