2019-02-20 01:08:53 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2019-06-05 22:43:43 +00:00
|
|
|
# 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.
|
|
|
|
|
2019-02-20 01:08:53 +00:00
|
|
|
# Run `cargo fmt` 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 ..
|
|
|
|
|
|
|
|
# Keep track of whether any cargo fmt invocation exited with error.
|
|
|
|
EXIT=0
|
|
|
|
|
|
|
|
FIND_CARGO_TOMLS="$(find "$PWD" -name Cargo.toml)"
|
|
|
|
|
|
|
|
while read path_to_cargo_toml; do
|
|
|
|
cd "$(dirname "$path_to_cargo_toml")"
|
|
|
|
|
|
|
|
if grep --quiet '\[workspace\]' Cargo.toml; then
|
|
|
|
if ! cargo fmt --all -- "$@"; then
|
|
|
|
EXIT=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done <<< "$FIND_CARGO_TOMLS"
|
|
|
|
|
|
|
|
exit $EXIT
|