# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

PRESUBMIT_VERSION = '2.0.0'


def CheckSisoConfigFormat(input_api, output_api):
    """Check if build/config/siso/*.star files are formatted correctly."""
    repo_root = input_api.change.RepositoryRoot()
    log_level = 'debug' if input_api.verbose else 'warning'
    commands = []
    for f in input_api.AffectedFiles():
        filepath = f.AbsoluteLocalPath()
        if not filepath.endswith('.star'):
            continue
        if not input_api.os_path.isfile(filepath):
            continue
        name = 'Validate ' + filepath
        cmd = ['lucicfg', 'fmt', '-dry-run', '-log-level', log_level, filepath]
        commands.append(
            input_api.Command(name, cmd, {}, output_api.PresubmitError)
        )
    return input_api.RunTests(commands)
