#!/bin/bash

targets=(
	x86_64-pc-solaris
	x86_64-unknown-illumos
	aarch64-linux-android
	aarch64-unknown-linux-gnu
	aarch64-unknown-linux-musl
	arm-linux-androideabi
	arm-unknown-linux-gnueabi
	arm-unknown-linux-gnueabihf
	arm-unknown-linux-musleabi
	arm-unknown-linux-musleabihf
	armv5te-unknown-linux-gnueabi
	armv5te-unknown-linux-musleabi
	armv7-linux-androideabi
	armv7-unknown-linux-gnueabi
	armv7-unknown-linux-gnueabihf
	armv7-unknown-linux-musleabi
	armv7-unknown-linux-musleabihf
	i586-unknown-linux-gnu
	i586-unknown-linux-musl
	i686-linux-android
	i686-unknown-linux-gnu
	i686-unknown-linux-musl
	powerpc-unknown-linux-gnu
	powerpc64-unknown-linux-gnu
	powerpc64le-unknown-linux-gnu
	riscv64gc-unknown-linux-gnu
	s390x-unknown-linux-gnu
	sparc64-unknown-linux-gnu
	thumbv7neon-linux-androideabi
	thumbv7neon-unknown-linux-gnueabihf
	x86_64-apple-darwin
	x86_64-apple-ios
	x86_64-linux-android
	x86_64-linux-android
	x86_64-pc-windows-gnu
	x86_64-pc-windows-msvc
	x86_64-unknown-freebsd
	x86_64-unknown-linux-gnu
	x86_64-unknown-linux-gnu
	x86_64-unknown-linux-gnux32
	x86_64-unknown-linux-musl
	x86_64-unknown-linux-musl
	x86_64-unknown-netbsd
)

for target in "${targets[@]}"; do
	printf "Checking target: %s\n" "$target"
	rustup target add "$target"

	cargo clippy --target "$target" "$@"
	if (( $? != 0 )); then
		printf "cargo clippy --target %s failed\n" "$target"
	fi
	echo
done
