#!/bin/bash
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

set -eo pipefail

if [ -f Cargo.toml ]; then
    # Ensure that all targets can be built.
    cargo build -r --all-targets

    #Ensure that code is correctly formatted.
    cargo fmt --check || (echo "Run cargo fmt to fix formatting" && exit 1)

    # Ensure that clippy warnings are addressed.
    cargo clippy --all-targets --no-deps -- -Dwarnings

    # Ensure that all modifications are included.
    # TODO refine status checking.
    if git status -s | grep -e "MM " -e "??" -e "AM " -e " M "  > /dev/null; then
	printf "\nUnstaged changes found:\n"
	git status -s | grep -e "MM " -e "??" -e "AM " -e " M "
	echo "Stage them and try again"
	exit 1
    fi
fi
