From b92763a7cf7073fa6297ac91235009885cb6e0b9 Mon Sep 17 00:00:00 2001 From: MrMelon Date: Sun, 18 Apr 2021 11:25:01 +0100 Subject: [PATCH] Setup to create deb package --- .gitignore | 3 +- Makefile | 26 +++++++++++ .../mcserverplayerlocator/cli.go | 0 project.json | 9 ++++ scripts/package-mcserverplayerlocator.sh | 43 +++++++++++++++++++ 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 Makefile rename mc-server-player-locator.go => cmd/mcserverplayerlocator/cli.go (100%) create mode 100644 project.json create mode 100755 scripts/package-mcserverplayerlocator.sh diff --git a/.gitignore b/.gitignore index 2d2e384..aaea3dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -mcserverplayerlocator \ No newline at end of file +dist/ +package/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a0b71cc --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ + + +all: + make build-main + +build-main: + mkdir -p dist/ && \ + go build -o dist/mcserverplayerlocator ./cmd/mcserverplayerlocator + +package: + ./scripts/package-mcserverplayerlocator.sh + +deb: + make clean && \ + make all && \ + make package + +clean: + rm -rf dist/ && \ + rm -rf package/ + + +.PHONY: run +run: + cd ./dist/ && \ + ./mcserverplayerlocator diff --git a/mc-server-player-locator.go b/cmd/mcserverplayerlocator/cli.go similarity index 100% rename from mc-server-player-locator.go rename to cmd/mcserverplayerlocator/cli.go diff --git a/project.json b/project.json new file mode 100644 index 0000000..ad2e62c --- /dev/null +++ b/project.json @@ -0,0 +1,9 @@ +{ + "Package": "mcserverplayerlocator", + "Version": "1.0-1", + "Section": "base", + "Priority": "optional", + "Architecture": "amd64", + "Maintainer": "MrMelon54 ", + "Description": "Lookup Minecraft player locations in server data" +} diff --git a/scripts/package-mcserverplayerlocator.sh b/scripts/package-mcserverplayerlocator.sh new file mode 100755 index 0000000..bf81858 --- /dev/null +++ b/scripts/package-mcserverplayerlocator.sh @@ -0,0 +1,43 @@ +#!/bin/bash +SCRIPT=$(readlink -f $0) +SCRIPTPATH=`dirname $SCRIPT` +PROJECT_DIR=`dirname $SCRIPTPATH` +PROJECT_DAT=`cat $PROJECT_DIR/project.json` +PROJECT_NAM=`echo $PROJECT_DAT | jq .Package -r` +PROJECT_VER=`echo $PROJECT_DAT | jq .Version -r` + +echo +echo "Packaging $PROJECT_NAM v$PROJECT_VER" +echo + +INSTALL_DIR="/usr/bin" +INSTALL_DIR=$(realpath -sm "$INSTALL_DIR") + +echo "Using the following folders for install" +echo "PROJECT_DIR: $PROJECT_DIR" +echo "INSTALL_DIR: $INSTALL_DIR" + +PACK="${PROJECT_DIR}/package/${PROJECT_NAM}_${PROJECT_VER}" +PACK_BIN=$(realpath -sm "$PACK/$INSTALL_DIR") +PACK_DEB=$(realpath -sm "$PACK/DEBIAN") +mkdir -p "$PACK" +mkdir -p "$PACK_BIN" +mkdir -p "$PACK_DEB" + +# Copying files +echo "Copying binary files" +cp dist/mcserverplayerlocator "$PACK_BIN" + +echo "Generating meta data" +PACK_CON=$(realpath -sm "$PACK_DEB/control") +echo "" > "$PACK_CON" +for row in $(echo "$PROJECT_DAT" | jq -r 'keys[]'); do + value=`echo "$PROJECT_DAT" | jq -r ".[\"$row\"]"` + echo "$row: $value" >> "$PACK_CON" +done + +echo "Building package" +dpkg-deb --build "$PACK" +echo "Signing package" +dpkg-sig -k OnPointCoding --sign repo "$PACK.deb" +echo "Package complete:"