From 7713378c690a85f069b6a8358535682c282b236d Mon Sep 17 00:00:00 2001 From: Daniel Narvaez Date: Fri, 23 Nov 2012 17:20:46 +0000 Subject: Observe only the source directories --- (limited to 'devbot') diff --git a/devbot/autoinstall.py b/devbot/autoinstall.py index 9e1fda0..bb0e469 100755 --- a/devbot/autoinstall.py +++ b/devbot/autoinstall.py @@ -13,7 +13,7 @@ from devbot import config monitors = [] -def install(module, file): +def _install(module, file): print "Installing %s" % file.get_path() source_dir = module.get_source_dir() @@ -30,10 +30,19 @@ def install(module, file): install_dir = makefile[dir_variable] shutil.copy(file.get_path(), install_dir) -def changed_cb(monitor, file, other_file, event_flags, module): +def _changed_cb(monitor, file, other_file, event_flags, module): if event_flags == Gio.FileMonitorEvent.CHANGED: if file.get_path().endswith(".py"): - install(module, file) + _install(module, file) + +def _observe_dir(module, dir_to_observe): + for root, dirs, files in os.walk(dir_to_observe): + for dir in dirs: + file = Gio.File.new_for_path(os.path.join(root, dir)) + + monitor = file.monitor(Gio.FileMonitorFlags.NONE, None) + monitor.connect("changed", _changed_cb, module) + monitors.append(monitor) def observe(): for module in config.load_modules(): @@ -41,14 +50,8 @@ def observe(): print "Observing the %s module" % module.name source_dir = module.get_source_dir() - for root, dirs, files in os.walk(source_dir): - for dir in dirs: - file = Gio.File.new_for_path(os.path.join(root, dir)) - monitor = file.monitor(Gio.FileMonitorFlags.NONE, None) - monitor.connect("changed", changed_cb, module) - - monitors.append(monitor) - + for dir in module.auto_install: + _observe_dir(module, os.path.join(source_dir, dir)) main_loop = GLib.MainLoop() main_loop.run() -- cgit v0.9.1