| #!/bin/bash |
| |
| # Copyright 2019 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 crosvm. This is different from |
| # `cargo fmt --all` which formats multiple crates but a single workspace only. |
| # Crosvm consists of multiple workspaces. |
| # |
| # Usage: |
| # |
| # $ bin/fmt |
| # |
| # To print a diff and exit 1 if code is not formatted, but without changing any |
| # files, use: |
| # |
| # $ bin/fmt --check |
| # |
| |
| set -euo pipefail |
| |
| # Change into directory of script, which is crosvm/bin. |
| cd "$(dirname "${BASH_SOURCE[0]}")" |
| |
| # Jump up to root directory of crosvm repo. |
| cd .. |
| |
| find . -name '*.rs' -print0 \ |
| | grep -vz '^./third_party/' \ |
| | grep -vz '^./target/' \ |
| | xargs -0 rustfmt --edition=2018 "$@" -- |