VERSION=$(shell grep ^version Cargo.toml|cut -d\" -f2)

all:
	@echo "select target"

clean:
	rm -rf _build
	cargo clean

tag:
	git tag -a v${VERSION} -m v${VERSION}
	git push origin --tags

release: tests pub tag pkg debian-pkg pub-pkg

tests: run-tests clippy

run-tests:
	cargo test --features server

clippy:
	clippy --features server,cli,cluster

pub: publish-cargo-crate

publish-cargo-crate:
	cargo publish

pkg:
	rm -rf _build
	mkdir -p _build
	cross build --target x86_64-unknown-linux-musl --release --features server,cli
	cross build --target i686-unknown-linux-musl --release --features server,cli
	cross build --target arm-unknown-linux-musleabihf --release --features server,cli
	cross build --target aarch64-unknown-linux-musl --release --features server,cli
	cd target/x86_64-unknown-linux-musl/release && tar czvf ../../../_build/psrt-${VERSION}-x86_64-musl.tar.gz psrtd psrt-cli
	cd target/i686-unknown-linux-musl/release && tar czvf ../../../_build/psrt-${VERSION}-i686-musl.tar.gz psrtd psrt-cli
	cd target/arm-unknown-linux-musleabihf/release && tar czvf ../../../_build/psrt-${VERSION}-arm-musleabihf.tar.gz psrtd psrt-cli
	cd target/aarch64-unknown-linux-musl/release && \
			aarch64-linux-gnu-strip psrtd && \
			aarch64-linux-gnu-strip psrt-cli && \
			tar czvf ../../../_build/psrt-${VERSION}-aarch64-musl.tar.gz psrtd psrt-cli

debian-pkg:
	cd make-deb && ./build.sh && mv psrt-${VERSION}-amd64.deb ../_build/

pub-pkg:
	cd _build && echo "" | gh release create v$(VERSION) -t "v$(VERSION)" \
			psrt-${VERSION}-arm-musleabihf.tar.gz \
			psrt-${VERSION}-i686-musl.tar.gz \
			psrt-${VERSION}-x86_64-musl.tar.gz \
			psrt-${VERSION}-aarch64-musl.tar.gz \
			psrt-${VERSION}-amd64.deb

release-enterprise:
	cargo build --target x86_64-unknown-linux-musl --release --features server,cli,cluster
	cd make-deb && \
		./build.sh enterprise && \
		gsutil cp -a public-read psrt-enterprise-${VERSION}-amd64.deb gs://get.eva-ics.com/psrt-enterprise/
	jks build get.eva-ics.com
