From 51acf16dba34336bab96591c74235c87ef397e91 Mon Sep 17 00:00:00 2001 From: Daniel Narvaez Date: Sat, 15 Dec 2012 21:30:24 +0000 Subject: Use index.json for packages and deps too --- 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)] -- cgit v0.9.1