Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot
diff options
context:
space:
mode:
Diffstat (limited to 'devbot')
-rwxr-xr-xdevbot/autoinstall.py25
1 files changed, 14 insertions, 11 deletions
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()