From e0312249981413016da60f8c9f89d306d4fa728f Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 16 Nov 2016 23:21:05 +0000 Subject: [PATCH] Add shitty packaging script --- Makefile | 4 +++ package.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100755 package.sh diff --git a/Makefile b/Makefile index ec0a60b..b12fcde 100644 --- a/Makefile +++ b/Makefile @@ -62,3 +62,7 @@ web-generate: .PHONY: web-debug-bindata web-debug-bindata: cd web && go-bindata -debug -pkg web static/... templates/... + +.PHONY: package +package: + ./package.sh diff --git a/package.sh b/package.sh new file mode 100755 index 0000000..7bed73e --- /dev/null +++ b/package.sh @@ -0,0 +1,72 @@ +#! /usr/bin/env bash +set -e +shopt -s extglob + +main() { + local name="ozuio" + local platforms=( + darwin-386 darwin-amd64 + freebsd-386 freebsd-amd64 freebsd-arm + linux-386 linux-amd64 linux-arm + netbsd-386 netbsd-amd64 netbsd-arm + openbsd-386 openbsd-amd64 + solaris-amd64 + windows-386 windows-amd64 + ) + local builddir="build" + local outputdir="pkg" + + local version + version="$(get-version)" + + local workdir="${builddir}/${version}" + mkdir -p "$workdir" + + for platform in "${platforms[@]}"; do + if [[ "$platform" =~ ^(.+)-(.+)$ ]]; then + local os="${BASH_REMATCH[1]}" + local arch="${BASH_REMATCH[2]}" + local pkg="${name}_${version}_${os}_${arch}" + local pkgdir="${workdir}/${pkg}" + local binary="${pkgdir}/${name}" + + if [ "$os" == "windows" ]; then + binary="${binary}.exe" + fi + + echo "building $pkg" + GOOS="$os" GOARCH="$arch" go build -o "$binary" \ + -ldflags "-X main.Version=${version}" + + cp "README.md" "${pkgdir}/" + + mkdir -p "${outputdir}/${version}" + + if [ "$os" == "windows" ]; then + local archive="${outputdir}/${version}/${pkg}.zip" + echo "creating ${archive}" + local cwd="$(pwd)" + cd "$workdir" + zip -r "../../$archive" "$pkg" + cd "$cwd" + else + local archive="${outputdir}/${version}/${pkg}.tar.gz" + echo "creating ${archive}" + tar -C "$workdir" -czf "$archive" "$pkg" + fi + fi + done +} + +get-version() { + trim "$(cat "VERSION")" +} + +trim() { + local string="$@" + string="${string#"${string%%[![:space:]]*}"}" + string="${string%"${string##*[![:space:]]}"}" + echo -n "$string" +} + +main