blob: 66c7322b2bcdb7c287438bac6c3d9f9499a710f5 [file] [log] [blame]
# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Utility script to update the generated config files."""
import logging
from chromite.config import chromeos_config
from chromite.format import formatters
from chromite.lib import commandline
from chromite.lib import constants
from chromite.lib import cros_build_lib
from chromite.lib import osutils
def main(argv) -> None:
# Parse arguments to respect log levels.
commandline.ArgumentParser().parse_args(argv)
# Regenerate `config_dump.json`.
logging.info("Regenerating config_dump.json")
site_config = chromeos_config.GetConfig()
site_config.SaveConfigToFile(constants.CHROMEOS_CONFIG_FILE)
# Regenerate `waterfall_layout_dump.txt`.
logging.info("Regenerating waterfall_layout_dump.txt")
cmd = constants.CHROMITE_BIN_DIR / "cros_show_waterfall_layout"
result = cros_build_lib.run(
[cmd], capture_output=True, encoding="utf-8", debug_level=logging.DEBUG
)
waterfall_data = formatters.whitespace.Data(result.stdout)
osutils.WriteFile(constants.WATERFALL_CONFIG_FILE, waterfall_data)
# Regenerate `luci-scheduler.cfg`.
logging.info("Regenerating luci-scheduler.cfg")
cmd = constants.CHROMITE_SCRIPTS_DIR / "gen_luci_scheduler"
luci_result = cros_build_lib.run(
[cmd], capture_output=True, encoding="utf-8", debug_level=logging.DEBUG
)
osutils.WriteFile(constants.LUCI_SCHEDULER_CONFIG_FILE, luci_result.stdout)