From 7f8d2e3e280476be88f9288a88ccf161bea0fd25 Mon Sep 17 00:00:00 2001 From: Endre Simo Date: Mon, 4 Jun 2018 07:27:39 +0300 Subject: [PATCH] Creatre build scripts --- .gitignore | 1 + Makefile | 10 +++++++++ README.md | 0 build.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 Makefile create mode 100644 README.md create mode 100755 build.sh diff --git a/.gitignore b/.gitignore index 5db0643..0bcfb61 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ *.png *.jpg *.jpeg +pigo vendor packages diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5a34b09 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +all: + @./build.sh +clean: + @rm -f pigo +install: all + @cp pigo /usr/local/bin +uninstall: + @rm -f /usr/local/bin/pigo +package: + @NOCOPY=1 ./build.sh package \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..717df1e --- /dev/null +++ b/build.sh @@ -0,0 +1,65 @@ +#!/bin/bash +set -e + +VERSION="1.0.1" +PROTECTED_MODE="no" + +export GO15VENDOREXPERIMENT=1 + +cd $(dirname "${BASH_SOURCE[0]}") +OD="$(pwd)" +WD=$OD + +package() { + echo Packaging $1 Binary + bdir=pigo-${VERSION}-$2-$3 + rm -rf packages/$bdir && mkdir -p packages/$bdir + GOOS=$2 GOARCH=$3 ./build.sh + if [ "$2" == "windows" ]; then + mv pigo packages/$bdir/pigo.exe + else + mv pigo packages/$bdir + fi + cp README.md packages/$bdir + cd packages + if [ "$2" == "linux" ]; then + tar -zcf $bdir.tar.gz $bdir + else + zip -r -q $bdir.zip $bdir + fi + rm -rf $bdir + cd .. +} + +if [ "$1" == "package" ]; then + rm -rf packages/ + package "Windows" "windows" "amd64" + package "Mac" "darwin" "amd64" + package "Linux" "linux" "amd64" + package "FreeBSD" "freebsd" "amd64" + exit +fi + +# temp directory for storing isolated environment. +TMP="$(mktemp -d -t sdb.XXXX)" +rmtemp() { + rm -rf "$TMP" +} +trap rmtemp EXIT + +if [ "$NOCOPY" != "1" ]; then + # copy all files to an isolated directory. + WD="$TMP/src/github.com/esimov/pigo" + export GOPATH="$TMP" + for file in `find . -type f`; do + # TODO: use .gitignore to ignore, or possibly just use git to determine the file list. + if [[ "$file" != "." && "$file" != ./.git* && "$file" != ./pigo ]]; then + mkdir -p "$WD/$(dirname "${file}")" + cp -P "$file" "$WD/$(dirname "${file}")" + fi + done + cd $WD +fi + +# build and store objects into original directory. +go build -ldflags "-X main.Version=$VERSION" -o "$OD/pigo" cmd/pigo/*.go \ No newline at end of file