xref: /aosp_15_r20/external/crosvm/tools/fmt (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker#!/usr/bin/env python3
2*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2022 The ChromiumOS Authors
3*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file.
5*bb4ee6a4SAndroid Build Coastguard Worker
6*bb4ee6a4SAndroid Build Coastguard Worker# Run `rustfmt` on all Rust code contained in the crosvm workspace, including
7*bb4ee6a4SAndroid Build Coastguard Worker# all commmon/* crates as well.
8*bb4ee6a4SAndroid Build Coastguard Worker#
9*bb4ee6a4SAndroid Build Coastguard Worker# Usage:
10*bb4ee6a4SAndroid Build Coastguard Worker#
11*bb4ee6a4SAndroid Build Coastguard Worker#    $ tools/fmt
12*bb4ee6a4SAndroid Build Coastguard Worker#
13*bb4ee6a4SAndroid Build Coastguard Worker# To print a diff and exit 1 if code is not formatted, but without changing any
14*bb4ee6a4SAndroid Build Coastguard Worker# files, use:
15*bb4ee6a4SAndroid Build Coastguard Worker#
16*bb4ee6a4SAndroid Build Coastguard Worker#    $ tools/fmt --check
17*bb4ee6a4SAndroid Build Coastguard Worker#
18*bb4ee6a4SAndroid Build Coastguard Worker
19*bb4ee6a4SAndroid Build Coastguard Workerfrom pathlib import Path
20*bb4ee6a4SAndroid Build Coastguard Workerimport sys
21*bb4ee6a4SAndroid Build Coastguard Workerfrom impl.common import (
22*bb4ee6a4SAndroid Build Coastguard Worker    CROSVM_ROOT,
23*bb4ee6a4SAndroid Build Coastguard Worker    run_main,
24*bb4ee6a4SAndroid Build Coastguard Worker    cmd,
25*bb4ee6a4SAndroid Build Coastguard Worker    chdir,
26*bb4ee6a4SAndroid Build Coastguard Worker)
27*bb4ee6a4SAndroid Build Coastguard Worker
28*bb4ee6a4SAndroid Build Coastguard Worker
29*bb4ee6a4SAndroid Build Coastguard Workerdef main(check: bool = False):
30*bb4ee6a4SAndroid Build Coastguard Worker    chdir(CROSVM_ROOT)
31*bb4ee6a4SAndroid Build Coastguard Worker    cmd(
32*bb4ee6a4SAndroid Build Coastguard Worker        Path(sys.executable),
33*bb4ee6a4SAndroid Build Coastguard Worker        "./tools/presubmit format",
34*bb4ee6a4SAndroid Build Coastguard Worker        "--fix" if not check else None,
35*bb4ee6a4SAndroid Build Coastguard Worker    ).fg()
36*bb4ee6a4SAndroid Build Coastguard Worker
37*bb4ee6a4SAndroid Build Coastguard Worker
38*bb4ee6a4SAndroid Build Coastguard Workerif __name__ == "__main__":
39*bb4ee6a4SAndroid Build Coastguard Worker    run_main(main)
40