From 5fe8225c17cba6e52574c3172c0f1bdd345345cb Mon Sep 17 00:00:00 2001 From: MrMelon Date: Sun, 18 Apr 2021 11:27:00 +0100 Subject: [PATCH] Setup to create debian package --- .gitignore | 3 +- Makefile | 26 +++++++++++++ build | 3 -- brainfuck.go => cmd/brainfuck/brainfuck.go | 0 project.json | 9 +++++ scripts/package-brainfuck.sh | 43 ++++++++++++++++++++++ 6 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 Makefile delete mode 100755 build rename brainfuck.go => cmd/brainfuck/brainfuck.go (100%) create mode 100644 project.json create mode 100755 scripts/package-brainfuck.sh diff --git a/.gitignore b/.gitignore index b3b7ee7..aaea3dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -brainfuck +dist/ +package/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..65718bc --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ + + +all: + make build-main + +build-main: + mkdir -p dist/ && \ + go build -o dist/brainfuck ./cmd/brainfuck + +package: + ./scripts/package-brainfuck.sh + +deb: + make clean && \ + make all && \ + make package + +clean: + rm -rf dist/ && \ + rm -rf package/ + + +.PHONY: run +run: + cd ./dist/ && \ + ./brainfuck diff --git a/build b/build deleted file mode 100755 index 7d80b72..0000000 --- a/build +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -go build -o brainfuck -sudo cp ./brainfuck /usr/bin/brainfuck diff --git a/brainfuck.go b/cmd/brainfuck/brainfuck.go similarity index 100% rename from brainfuck.go rename to cmd/brainfuck/brainfuck.go diff --git a/project.json b/project.json new file mode 100644 index 0000000..7d1a9cb --- /dev/null +++ b/project.json @@ -0,0 +1,9 @@ +{ + "Package": "brainfuck", + "Version": "1.0-1", + "Section": "base", + "Priority": "optional", + "Architecture": "amd64", + "Maintainer": "MrMelon54 ", + "Description": "Run brainfuck code" +} diff --git a/scripts/package-brainfuck.sh b/scripts/package-brainfuck.sh new file mode 100755 index 0000000..bc2a80c --- /dev/null +++ b/scripts/package-brainfuck.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/brainfuck "$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:"