grin_wallet 5.3.1

Simple, private and scalable cryptocurrency implementation based on the MimbleWimble chain format.
Documentation
#!/usr/bin/env bash


# Copyright 2018 The Grin Developers

#

# Licensed under the Apache License, Version 2.0 (the "License");

# you may not use this file except in compliance with the License.

# You may obtain a copy of the License at

#

#     http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.


rustfmt --version &>/dev/null

if [ $? != 0 ]; then
	printf "[pre_commit] \033[0;31merror\033[0m: \"rustfmt\" not available. \n"

	printf "[pre_commit] \033[0;31merror\033[0m: rustfmt can be installed via - \n"

	printf "[pre_commit] $ rustup component add rustfmt-preview \n"

	exit 1

fi


problem_files=()

# first collect all the files that need reformatting

for file in $(git diff --name-only --cached); do
	if [ ${file: -3} == ".rs" ]; then
		rustfmt --check $file &>/dev/null

		if [ $? != 0 ]; then
			problem_files+=($file)
		fi

	fi

done


if [ ${#problem_files[@]} == 0 ]; then
  # nothing to do

  printf "[pre_commit] rustfmt \033[0;32mok\033[0m \n"

else
  # reformat the files that need it and re-stage them.

	printf "[pre_commit] the following files were rustfmt'd before commit: \n"

  for file in ${problem_files[@]}; do
    rustfmt $file

    git add $file

		printf "\033[0;32m    $file\033[0m \n"

  done

fi


exit 0