Browse Source

chore: Adding packing script for eliasdb binary

Matthias Ladkau 4 years ago
parent
commit
9b443e436a
2 changed files with 19 additions and 1 deletions
  1. 1 1
      Makefile
  2. 18 0
      pack_binary.sh

+ 1 - 1
Makefile

@@ -23,7 +23,7 @@ vet:
 	go vet ./...
 
 build: clean mod fmt vet
-	go build -o $(NAME) cli/eliasdb.go
+	go build -ldflags "-s -w" -o $(NAME) cli/eliasdb.go
 
 build-win: clean mod fmt vet
 	GOOS=windows GOARCH=amd64 go build -o $(NAME).exe cli/eliasdb.go

+ 18 - 0
pack_binary.sh

@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Simple script to produce a self-extracting packed binary
+
+export packed_binary=eliasdb_packed
+
+echo "cat \$0 | sed '1,/#### Binary ####/d' | gzip -d > ./__e" > $packed_binary
+echo "chmod ugo+x ./__e" >> $packed_binary
+echo "mv ./__e ./\$0" >> $packed_binary
+echo "./\$0" >> $packed_binary
+echo "exit 0" >> $packed_binary
+echo "This is a simple shell script trying to unpack the binary data" >> $packed_binary
+echo "after the marker below. Unpack manually by deleting all lines" >> $packed_binary
+echo "up to and including the marker line and do a gzip -d on the" >> $packed_binary
+echo "binary data" >> $packed_binary
+echo "#### Binary ####" >> $packed_binary
+gzip -c eliasdb >> $packed_binary
+chmod ugo+x $packed_binary