#!/usr/bin/env bash package=$1 if [[ -z "$package" ]]; then echo "usage: $0 " exit 1 fi package_split=(${package//\// }) package_split_len=${#package_split[@]} if [ "$package_split_len" -eq "1" ]; then package_split_2=(${package//./ }) package_split_2_len=${#package_split_2[@]} if [ "$package_split_2_len" -eq "1" ]; then package_name=$package else package_name=${package_split_2[0]} fi else package_name=${package_split[-1]} fi platforms=("windows/amd64" "windows/386" "darwin/amd64") for platform in "${platforms[@]}" do platform_split=(${platform//\// }) GOOS=${platform_split[0]} GOARCH=${platform_split[1]} output_name=$package_name'-'$GOOS'-'$GOARCH echo "Compiling $output_name ..." if [ $GOOS = "windows" ]; then output_name+='.exe' fi env GOOS=$GOOS GOARCH=$GOARCH go build -o $output_name $package if [ $? -ne 0 ]; then echo 'An error has occurred! Aborting the script execution...' exit 1 fi done