Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/devbot/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'devbot/config.py')
-rw-r--r--devbot/config.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/devbot/config.py b/devbot/config.py
index a66a196..4c129eb 100644
--- a/devbot/config.py
+++ b/devbot/config.py
@@ -27,6 +27,7 @@ _source_dir = None
_build_dir = None
_prefs_path = None
+
class Module:
def __init__(self, info):
self.name = info["name"]
@@ -66,6 +67,7 @@ class Module:
"delete it and pull\nthe source again."
return None
+
def setup(**kwargs):
_load_plugins()
@@ -90,6 +92,7 @@ def setup(**kwargs):
_setup_state_dir(kwargs["state_dir"])
_setup_install_dir(kwargs["install_dir"], relocatable)
+
def _setup_state_dir(state_dir):
utils.ensure_dir(state_dir)
@@ -104,6 +107,7 @@ def _setup_state_dir(state_dir):
home_dir = os.path.join(base_home_dir, get_pref("PROFILE"))
utils.ensure_dir(home_dir)
+
def _setup_prefix_dir(dir, relocatable):
global prefix_dir
@@ -129,6 +133,7 @@ def _setup_prefix_dir(dir, relocatable):
os.remove(prefix_dir)
os.symlink(dir, prefix_dir)
+
def _setup_install_dir(dir, relocatable=False):
global system_lib_dirs
global install_dir
@@ -161,16 +166,19 @@ def _setup_install_dir(dir, relocatable=False):
if distro_info.lib_dir is not None:
system_lib_dirs.append(os.path.join("/usr", distro_info.lib_dir))
+
def get_source_dir():
global _source_dir
utils.ensure_dir(_source_dir)
return _source_dir
+
def get_build_dir():
global _build_dir
utils.ensure_dir(_build_dir)
return _build_dir
+
def _read_prefs():
global _prefs_path
@@ -186,6 +194,7 @@ def _read_prefs():
return prefs
+
def _save_prefs(prefs):
global _prefs_path
@@ -196,6 +205,7 @@ def _save_prefs(prefs):
for pref in prefs.items():
f.write("%s\n" % "=".join(pref))
+
def get_log_path(prefix):
logfile_path = None
number = 0
@@ -211,31 +221,36 @@ def get_log_path(prefix):
return logfile_path
+
def get_pref(name):
- defaults = { "PROFILE": "default" }
+ defaults = {"PROFILE": "default"}
prefs = _read_prefs()
return prefs.get(name, defaults.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__)
imp.load_module(name, f, filename, desc)
+
def _read_index(dir_name):
if config_dir is None:
return []
index_dir = os.path.join(config_dir, dir_name)
with open(os.path.join(index_dir, "index.json")) as f:
- return [os.path.join(index_dir, json_file) \
+ return [os.path.join(index_dir, json_file)
for json_file in json.load(f)]
+
def get_full_build():
config = None
with open(os.path.join(config_dir, "config.json")) as f:
@@ -243,6 +258,7 @@ def get_full_build():
return config["full_build"]
+
def load_packages():
packages = {}
@@ -251,20 +267,23 @@ def load_packages():
return packages
+
def load_prerequisites():
path = os.path.join(config_dir, "deps", "prerequisites.json")
return json.load(open(path))
+
def _filter_if(item):
if "if" not in item:
return True
distro_info = distro.get_distro_info()
- globals = { "gstreamer_version": distro_info.gstreamer_version,
- "gnome_version": distro_info.gnome_version }
+ globals = {"gstreamer_version": distro_info.gstreamer_version,
+ "gnome_version": distro_info.gnome_version}
return eval(item["if"], globals)
+
def load_checks():
checks = []
for path in _read_index("deps"):
@@ -272,6 +291,7 @@ def load_checks():
return filter(_filter_if, checks)
+
def load_modules():
modules = []
for path in _read_index("modules"):
@@ -280,6 +300,7 @@ def load_modules():
return [Module(info) for info in filter(_filter_if, modules)]
+
def clean():
try:
os.rmdir(logs_dir)