diff --git a/.gitignore b/.gitignore index f134509..1937f78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ release.mk /release +/local-pkgbuild diff --git a/Makefile b/Makefile index a3ddbc1..7982e81 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: all setup web desktop desktop-common linux windows windows-portable +.PHONY: all setup web desktop desktop-common linux debian pacman local-pkgbuild local-pkgbuild-install windows windows-portable .PHONY: web-release debian-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release release .PHONY: clean @@ -67,6 +67,12 @@ windows: desktop-common windows-portable: desktop-common $(YARN) --cwd element-desktop run build64windows-portable +local-pkgbuild: debian + ./create_local_pkgbuild.sh $(VERSION) $(DESKTOP_APP_NAME) $(PRODUCT_NAME) $(OUT_DEB64) + +local-pkgbuild-install: local-pkgbuild + cd local-pkgbuild; makepkg --install + web-release: web mkdir -p $(CURRENT_RELEASE_DIR) cp $(OUT_WEB) $(CURRENT_RELEASE_DIR) @@ -105,3 +111,4 @@ clean: $(YARN) --cwd element-desktop clean rm -f element-desktop/webapp rm -rf element-web/dist + rm -rf local-pkgbuild diff --git a/create_local_pkgbuild.sh b/create_local_pkgbuild.sh new file mode 100755 index 0000000..eddcbc3 --- /dev/null +++ b/create_local_pkgbuild.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +mydir="$(dirname "$(realpath "$0")")" +cd "$mydir" + +version="$1" +appName="$2" +productName="$3" +debOut="$4" + +template_dir="local-pkgbuild-template" +out_dir="local-pkgbuild" + +if [ -z "$version" ] || [ -z "$appName" ] || [ -z "$productName" ] || [ -z "$debOut" ]; then + echo "Usage: $0 version appName productName debOut" + exit 1 +fi + +debName="$(basename "$debOut")" + +rm -rf "$out_dir" +mkdir "$out_dir" + +setup_file() { + local file="$1" + local outfile="$2" + if [ -z "$outfile" ]; then + local outfile="$file" + fi + cat "$template_dir/$file" \ + | sed "s|---version---|$version|g" \ + | sed "s|---appName---|$appName|g" \ + | sed "s|---productName---|$productName|g" \ + | sed "s|---debName---|$debName|g" \ + > "$out_dir/$outfile" +} + +setup_file PKGBUILD +setup_file schildichat-desktop.sh "$appName.sh" +ln -r -s "$debOut" "$out_dir/$debName" diff --git a/local-pkgbuild-template/PKGBUILD b/local-pkgbuild-template/PKGBUILD new file mode 100644 index 0000000..df4c516 --- /dev/null +++ b/local-pkgbuild-template/PKGBUILD @@ -0,0 +1,25 @@ +# Maintainer: su-ex +# Maintainer: SpiritCroc +# Contributor: David Mehren + +pkgname=---appName----git +_pkgver=---version--- +pkgver=${_pkgver//-/.} +pkgrel=1 +pkgdesc="SchildiChat is a Matrix client based on Element with a more traditional instant messaging experience." +arch=('x86_64') +url="https://schildi.chat" +license=('Apache') +depends=('sqlcipher') +provides=('---appName---') +conflicts=('---appName---') +source=("---debName---" + "---appName---.sh") +sha256sums=('SKIP' + 'SKIP') + +package() { + msg2 "Extracting the data.tar.xz..." + bsdtar -xf data.tar.xz -C "$pkgdir/" + install -Dm755 "${srcdir}"/---appName---.sh "${pkgdir}"/usr/bin/---appName--- +} diff --git a/local-pkgbuild-template/schildichat-desktop.sh b/local-pkgbuild-template/schildichat-desktop.sh new file mode 100644 index 0000000..99168a8 --- /dev/null +++ b/local-pkgbuild-template/schildichat-desktop.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec "/opt/---productName---/---appName---" "$@"