From e04e06fab48f8ef9b871bc83ab389c68cfed7de7 Mon Sep 17 00:00:00 2001 From: esimov Date: Fri, 20 Apr 2018 11:04:04 +0300 Subject: [PATCH] Include build script --- Makefile | 10 +++++++++ build.sh | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 Makefile create mode 100755 build.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5086c0c --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +all: + @./build.sh +clean: + @rm -f forensic +install: all + @cp triangle /usr/local/bin +uninstall: + @rm -f /usr/local/bin/forensic +package: + @NOCOPY=1 ./build.sh package \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..62bb6dc --- /dev/null +++ b/build.sh @@ -0,0 +1,65 @@ +#!/bin/bash +set -e + +VERSION="1.0.0" +PROTECTED_MODE="no" + +export GO15VENDOREXPERIMENT=1 + +cd $(dirname "${BASH_SOURCE[0]}") +OD="$(pwd)" +WD=$OD + +package() { + echo Packaging $1 Binary + bdir=forensic-${VERSION}-$2-$3 + rm -rf packages/$bdir && mkdir -p packages/$bdir + GOOS=$2 GOARCH=$3 ./build.sh + if [ "$2" == "windows" ]; then + mv forensic packages/$bdir/forensic.exe + else + mv forensic 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 isloated directory. + WD="$TMP/src/github.com/esimov/forensic" + 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" != ./forensic ]]; 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/forensic" *.go \ No newline at end of file