| #!/usr/bin/env python3 |
| # Copyright 2022 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Run `rustfmt` on all Rust code contained in the crosvm workspace, including |
| # all commmon/* crates as well. |
| # |
| # Usage: |
| # |
| # $ bin/fmt |
| # |
| # To print a diff and exit 1 if code is not formatted, but without changing any |
| # files, use: |
| # |
| # $ bin/fmt --check |
| # |
| |
| from impl.common import CROSVM_ROOT, cwd, run_main, cmd, chdir |
| |
| cargo = cmd("cargo") |
| mdformat = cmd("mdformat") |
| find = cmd("find") |
| |
| |
| def main(check: bool = False): |
| chdir(CROSVM_ROOT) |
| check_arg = "--check" if check else None |
| |
| print("Format crosvm workspace") |
| cargo("fmt --all --", check_arg).fg() |
| |
| for crate in CROSVM_ROOT.glob("common/*/Cargo.toml"): |
| print("Format", crate.parent.relative_to(CROSVM_ROOT)) |
| with cwd(crate.parent): |
| cargo("fmt --", check_arg).fg() |
| |
| print("Format markdown docs") |
| mdformat("--wrap 100", check_arg, find(".", "-name *.md -not -path ./third_party/*")).fg() |
| |
| |
| run_main(main) |