go="${GO:-go}" readonly go bump_minor='/^v[0-9]+\.[0-9]+\.0$/ { print($1 "." $2 + 1 ".0"); next; } { printf("invalid release version: \"%s\"\n", $0); exit 1; }' readonly bump_minor get_last_minor_zero() { git tag\ | grep -e 'v[0-9]\+\.[0-9]\+\.0$'\ | sort -k 1.2,1nr -k 2,2nr -t '.'\ | head -n 1 } last_minor_zero="$( get_last_minor_zero )" readonly last_minor_zero num_commits_since_minor="$( git rev-list --count "${last_minor_zero}..HEAD" )" readonly num_commits_since_minor next_minor="$( echo "$last_minor_zero" | awk -F '.' "$bump_minor" )" readonly next_minor version="${next_minor}-a.${num_commits_since_minor}+$( git rev-parse --short HEAD )" CGO_ENABLED='1' GO111MODULE='on' export CGO_ENABLED export GO111MODULE version_pkg='github.com/AdguardTeam/AdGuardHome/internal/version' readonly version_pkg ldflags="-s -w" ldflags="${ldflags} -X ${version_pkg}.version=${version}" ldflags="${ldflags} -X ${version_pkg}.channel=${channel}" "$go" build\ --ldflags "$ldflags"\ --race=1\ --trimpath\ -o=AdGuardHome\ -v=1\ -x=1