Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-11-28 01:04:15 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-11-28 01:04:15 (GMT)
commite571d1d525359f562074d6922ac06e35ac49b48c (patch)
treebbb6dbba110c44de83455b0cd49836642b898cea /devbot
parent016dea75191a76c01362850d4874d27fa0fb13e0 (diff)
Refactor to use sugar-runner
Diffstat (limited to 'devbot')
-rw-r--r--devbot/config.py23
-rw-r--r--devbot/environ.py4
-rw-r--r--devbot/run.py22
3 files changed, 45 insertions, 4 deletions
diff --git a/devbot/config.py b/devbot/config.py
index d5e1a74..7b9978c 100644
--- a/devbot/config.py
+++ b/devbot/config.py
@@ -171,20 +171,37 @@ def set_prefs_path(path):
global prefs_path
prefs_path = path
-def get_pref(name):
- prefs = {}
+def _read_prefs():
+ global prefs_path
if not os.path.exists(prefs_path):
- return None
+ return {}
+ prefs = {}
with open(prefs_path) as f:
for line in f.readlines():
splitted = line.strip().split("=")
if len(splitted) == 2:
prefs[splitted[0]] = splitted[1]
+ return prefs
+
+def _save_prefs(prefs):
+ global prefs_path
+
+ with open(prefs_path, "w") as f:
+ for pref in prefs.items():
+ f.write("%s\n" % "=".join(pref))
+
+def get_pref(name):
+ prefs = _read_prefs()
return prefs.get(name, None)
+def set_pref(name, value):
+ prefs = _read_prefs()
+ prefs[name] = value
+ _save_prefs(prefs)
+
def load_plugins():
for loader, name, ispkg in pkgutil.iter_modules(plugins.__path__):
f, filename, desc = imp.find_module(name, plugins.__path__)
diff --git a/devbot/environ.py b/devbot/environ.py
index 5879995..2107792 100644
--- a/devbot/environ.py
+++ b/devbot/environ.py
@@ -58,6 +58,10 @@ def _setup_variables():
os.environ["GTK_DATA_PREFIX"] = config.prefix_dir
os.environ["GTK_PATH"] = os.path.join(config.lib_dir, "gtk-2.0")
+ profile = config.get_pref("PROFILE")
+ if profile is not None:
+ os.environ["SUGAR_PROFILE"] = profile
+
def _setup_gconf():
gconf_dir = os.path.join(config.etc_dir, "gconf")
gconf_pathdir = os.path.join(gconf_dir, "2")
diff --git a/devbot/run.py b/devbot/run.py
index 1bbe695..451da96 100644
--- a/devbot/run.py
+++ b/devbot/run.py
@@ -1,9 +1,29 @@
#!/usr/bin/python -u
import os
+import string
+import random
from devbot import environ
+from devbot import config
-def run_command(args):
+def run(args):
environ.setup()
os.execlp(args[0], *args)
+
+def run_sugar():
+ profile_env = os.environ.get("SUGAR_PROFILE", None)
+ profile_pref = config.get_pref("PROFILE")
+
+ if profile_env is not None:
+ if profile_pref is None:
+ config.set_pref("PROFILE", _get_random_id())
+ elif profile_pref == profile_env:
+ print "Cannot run two instances with the same profile."
+ return
+
+ run(["sugar-runner"])
+
+def _get_random_id():
+ return ''.join(random.choice(string.letters) for i in xrange(8))
+