1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-28 00:25:21 +01:00
pywb/pywb/manager/autoindex.py

46 lines
1.3 KiB
Python

import sys
import time
from watchdog.observers import Observer
from watchdog.events import RegexMatchingEventHandler
#=============================================================================
EXT_REGEX = '.*\.w?arc(\.gz)?$'
keep_running = True
#=============================================================================
class CDXAutoIndexer(RegexMatchingEventHandler):
def __init__(self, updater, path):
super(CDXAutoIndexer, self).__init__(regexes=[EXT_REGEX],
ignore_directories=True)
self.updater = updater
self.cdx_path = path
def on_created(self, event):
self.updater(event.src_path)
def on_modified(self, event):
self.updater(event.src_path)
def start_watch(self):
self.observer = Observer()
self.observer.schedule(self, self.cdx_path, recursive=True)
self.observer.start()
def do_loop(self, sleep_time=1):
try:
while keep_running:
time.sleep(sleep_time)
except KeyboardInterrupt: # pragma: no cover
observer.stop()
observer.join()
#=============================================================================
if __name__ == "__main__":
w = Watcher(sys.argv[1] if len(sys.argv) > 1 else '.')
def p(x):
print(x)
w.run(p)