#!/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 "$@" --