#!/bin/sh
# Author: shockrah

# Building

cargo_targets="json-api"

no_cargo_cache=false
ask_help=false

mkdir -p bin/
# Statically built binaries make this part really easy
build_cargo_targets() {
	for target in $cargo_targets;do
		echo ================================================
		echo =
		echo =
		echo =
		echo =               Building $target              
		echo =
		echo =
		echo =
		echo ================================================
		cd $target

			cargo build --release
			cp target/release/$target ../bin/

			if [ $no_cargo_cache = "true" ];then
				cargo clean
			fi

		cd ../
	done
}



show_help() {
cat <<EOF
Script for BUILDING(not running/installing services) all relevant server binaries
Primarily to be used in docker images

Available options:
	--no-cargo-cache
		Cost: Slower compilation times after the first build as everything must be rebuilt
		Benefit: less disk usage as it cleans up unused files after a 'cargo build --release'
EOF

}

for arg in $@;do
	if [ "$arg" = "--no-cargo-cache" ];then
		no_cargo_cache=true
	fi

	if [ "$arg" = "--help" ];then ask_help=true; fi
	if [ "$arg" = "-h" ];then ask_help=true; fi

done


if [ $ask_help = "true" ];then
	# show help and quit
	show_help
else
	# normal building process
	build_cargo_targets
fi


