1SHELL=/usr/bin/env bash
 2NAME=minify
 3CMD=./cmd/minify
 4TARGETS=linux_amd64 linux_arm64 darwin_amd64 darwin_arm64 freebsd_amd64 netbsd_amd64 openbsd_amd64 windows_amd64
 5VERSION=`git describe --tags`
 6FLAGS=-ldflags "-s -w -X 'main.Version=${VERSION}'" -trimpath
 7ENVS=GO111MODULES=on CGO_ENABLED=0
 8
 9all: install
10
11install:
12	echo "Installing ${VERSION}"
13	${ENVS} go install ${FLAGS} ./cmd/minify
14	. cmd/minify/bash_completion
15
16release:
17	TAG=$(shell git describe --tags --exact-match 2> /dev/null);
18	if [ "${.SHELLSTATUS}" -eq 0 ]; then \
19		echo "Releasing ${VERSION}"; \
20	else \
21		echo "ERROR: commit is not tagged with a version"; \
22		echo ""; \
23		exit 1; \
24	fi
25	rm -rf dist
26	mkdir -p dist
27	for t in ${TARGETS}; do \
28		echo Building $$t...; \
29		mkdir dist/$$t; \
30		os=$$(echo $$t | cut -f1 -d_); \
31		arch=$$(echo $$t | cut -f2 -d_); \
32		${ENVS} GOOS=$$os GOARCH=$$arch go build ${FLAGS} -o dist/$$t/${NAME} ${CMD}; \
33		\
34		cp LICENSE dist/$$t/.; \
35		cp cmd/minify/README.md dist/$$t/.; \
36		if [ "$$os" == "windows" ]; then \
37			mv dist/$$t/${NAME} dist/$$t/${NAME}.exe; \
38			zip -jq dist/${NAME}_$$t.zip dist/$$t/*; \
39			cd dist; \
40			sha256sum ${NAME}_$$t.zip >> checksums.txt; \
41			cd ..; \
42		else \
43			cp cmd/minify/bash_completion dist/$$t/.; \
44			cd dist/$$t; \
45			tar -cf - * | gzip -9 > ../${NAME}_$$t.tar.gz; \
46			cd ..; \
47			sha256sum ${NAME}_$$t.tar.gz >> checksums.txt; \
48			cd ..; \
49		fi; \
50		rm -rf dist/$$t; \
51	done
52
53clean:
54	echo "Cleaning dist/"
55	rm -rf dist
56
57.PHONY: install release clean
58.SILENT: install release clean