Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-12-15 21:30:24 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2012-12-15 21:30:24 (GMT)
commit51acf16dba34336bab96591c74235c87ef397e91 (patch)
tree338b7cf40b669d5a607bcb4f15f3538ec400ab6c
parentc26bdad106685cb56186e4c31482479d39917180 (diff)
Use index.json for packages and deps too
-rw-r--r--commands/common.py30
-rw-r--r--config/deps/index.json4
-rw-r--r--config/packages/index.json2
-rw-r--r--devbot/config.py41
4 files changed, 36 insertions, 41 deletions
diff --git a/commands/common.py b/commands/common.py
index 542a1f6..37a8abf 100644
--- a/commands/common.py
+++ b/commands/common.py
@@ -9,29 +9,19 @@ from devbot import config
from devbot import command
def setup():
- config.setup(config_dir=os.path.join(base_dir, "config"),
- install_dir=os.path.join(base_dir, "install"),
- source_dir=os.path.join(base_dir, "source"),
- build_dir=os.path.join(base_dir, "build"),
- state_dir=os.path.join(base_dir, "state"),
- prefs_path=os.path.join(base_dir, "prefs"),
- logs_dir=os.path.join(base_dir, "logs"),
- relocatable="SUGAR_BUILDBOT" in os.environ)
-
- dep_files = ["system",
- "sugar-build",
- "sugar-buildtime",
- "sugar-runtime"]
-
- config.set_dep_files(dep_files)
-
- package_files = ["basesystem",
- "deps"]
+ args = {"config_dir": os.path.join(base_dir, "config"),
+ "install_dir": os.path.join(base_dir, "install"),
+ "source_dir": os.path.join(base_dir, "source"),
+ "build_dir": os.path.join(base_dir, "build"),
+ "state_dir": os.path.join(base_dir, "state"),
+ "prefs_path": os.path.join(base_dir, "prefs"),
+ "logs_dir": os.path.join(base_dir, "logs")}
if "SUGAR_BUILDBOT" in os.environ:
- package_files.append("buildslave")
+ args["relocatable"] = True
+ args["extra_package_files"] = ["buildslave.json"]
- config.set_package_files(package_files)
+ config.setup(**args)
tools_dir = os.path.join(base_dir, "tools")
command.set_logger(os.path.join(tools_dir, "log-command"))
diff --git a/config/deps/index.json b/config/deps/index.json
new file mode 100644
index 0000000..feb7142
--- /dev/null
+++ b/config/deps/index.json
@@ -0,0 +1,4 @@
+["system.json",
+ "sugar-build.json",
+ "sugar-buildtime.json",
+ "sugar-runtime.json"]
diff --git a/config/packages/index.json b/config/packages/index.json
new file mode 100644
index 0000000..bab6e79
--- /dev/null
+++ b/config/packages/index.json
@@ -0,0 +1,2 @@
+["basesystem.json",
+ "deps.json"]
diff --git a/devbot/config.py b/devbot/config.py
index cd37e23..31e2d1f 100644
--- a/devbot/config.py
+++ b/devbot/config.py
@@ -18,7 +18,6 @@ share_dir = None
bin_dir = None
etc_dir = None
libexec_dir = None
-dep_files = None
package_files = None
system_lib_dirs = None
cache_home_dir = None
@@ -29,6 +28,7 @@ build_state_dir = None
_source_dir = None
_build_dir = None
_prefs_path = None
+_extra_packages_files = []
class Module:
def __init__(self, info):
@@ -93,8 +93,13 @@ def setup(**kwargs):
global _build_dir
_build_dir = kwargs["build_dir"]
+ global _extra_packages_files
+ _extra_packages_files = kwargs.get("extra_packages_files", [])
+
+ relocatable = kwargs.get("relocatable", False)
+
_setup_state_dir(kwargs["state_dir"])
- _setup_install_dir(kwargs["install_dir"], kwargs["relocatable"])
+ _setup_install_dir(kwargs["install_dir"], relocatable)
def _setup_state_dir(state_dir):
_ensure_dir(state_dir)
@@ -191,14 +196,6 @@ def get_build_dir():
_ensure_dir(_build_dir)
return _build_dir
-def set_dep_files(files):
- global dep_files
- dep_files = files
-
-def set_package_files(files):
- global package_files
- package_files = files
-
def _read_prefs():
global _prefs_path
@@ -255,11 +252,18 @@ def _load_plugins():
f, filename, desc = imp.find_module(name, plugins.__path__)
imp.load_module(name, f, filename, desc)
+def _read_index(dir_name, extra=[]):
+ index_dir = os.path.join(config_dir, dir_name)
+ files = extra[:]
+
+ with open(os.path.join(index_dir, "index.json")) as f:
+ files.extend(json.load(f))
+ return [os.path.join(index_dir, json_file) for json_file in files]
+
def load_packages():
packages = {}
- for file in package_files:
- path = os.path.join(config_dir, "packages", "%s.json" % file)
+ for path in _read_index("packages", _extra_packages_files):
packages.update(json.load(open(path)))
return packages
@@ -280,21 +284,16 @@ def _filter_if(item):
def load_checks():
checks = []
- for file in dep_files:
- path = os.path.join(config_dir, "deps", "%s.json" % file)
+ for path in _read_index("deps"):
checks.extend(json.load(open(path)))
return filter(_filter_if, checks)
def load_modules():
- module_dir = os.path.join(config_dir, "modules")
-
modules = []
- with open(os.path.join(module_dir, "index.json")) as f:
- for module_file in json.load(f):
- path = os.path.join(module_dir, module_file)
- for info in json.load(open(path)):
- modules.append(info)
+ for path in _read_index("modules"):
+ for info in json.load(open(path)):
+ modules.append(info)
return [Module(info) for info in filter(_filter_if, modules)]