diff --git a/.gitignore b/.gitignore index 99fc310..f134509 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ release.mk +/release diff --git a/Makefile b/Makefile index be6fd29..d690e1b 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,43 @@ -.PHONY: all web desktop desktop-common linux windows windows-portable clean +.PHONY: all setup web desktop desktop-common linux windows windows-portable +.PHONY: web-release debian-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release release +.PHONY: clean CFGDIR ?= configs/sc -all: desktop +all: release YARN ?= yarnpkg +VERSION := $(shell grep version element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|') +APP_NAME := $(shell grep '"name"' element-desktop/package.json | head -n 1 | sed 's|.*: \"\(.*\)\",|\1|') +PRODUCT_NAME := $(shell grep '"productName"' element-desktop/package.json | sed 's|.*: \"\(.*\)\",|\1|') + +WEB_OUT := element-web/dist +WEB_OUT_DIST_VERSION := web +OUT_WEB := $(WEB_OUT)/riot-$(WEB_OUT_DIST_VERSION).tar.gz +OUT_WEB_BETTER_NAME := schildichat-web-$(VERSION).tar.gz + +DESKTOP_OUT := element-desktop/dist +OUT_DEB64 := $(DESKTOP_OUT)/$(APP_NAME)_$(VERSION)_amd64.deb +OUT_PAC64 := $(DESKTOP_OUT)/$(APP_NAME)-$(VERSION).pacman +OUT_TARXZ64 := $(DESKTOP_OUT)/$(APP_NAME)-$(VERSION).tar.xz +OUT_WIN64 := $(DESKTOP_OUT)/$(PRODUCT_NAME)\ Setup\ $(VERSION).exe +OUT_WIN64_PORTABLE := $(DESKTOP_OUT)/$(PRODUCT_NAME)\ $(VERSION).exe +OUT_WIN64_BETTER_NAME := $(PRODUCT_NAME)_Setup_v$(VERSION).exe +OUT_WIN64_UNPACKED_BETTER_NAME := $(PRODUCT_NAME)_win-unpacked_v$(VERSION).zip +OUT_WIN64_PORTABLE_BETTER_NAME := $(PRODUCT_NAME)_win-portable_v$(VERSION) + +RELEASE_DIR := release +CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION) + -include release.mk +setup: + if [ ! -L "element-desktop/webapp" ]; then ./setup.sh; fi -web: +web: export DIST_VERSION=$(WEB_OUT_DIST_VERSION) +web: setup cp $(CFGDIR)/config.json element-web/ $(YARN) --cwd element-web dist @@ -35,8 +62,38 @@ windows: desktop-common windows-portable: desktop-common $(YARN) --cwd element-desktop run build64windows-portable +web-release: web + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_WEB) $(CURRENT_RELEASE_DIR)/$(OUT_WEB_BETTER_NAME) + +debian-release: debian + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_DEB64) $(CURRENT_RELEASE_DIR) + +pacman-release: pacman + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_PAC64) $(CURRENT_RELEASE_DIR) + +windows-setup-release: windows + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_WIN64) $(CURRENT_RELEASE_DIR)/$(OUT_WIN64_BETTER_NAME) + +windows-unpacked-release: windows + mkdir -p $(CURRENT_RELEASE_DIR) + cd element-desktop/dist/win-unpacked && zip -r ../../../$(CURRENT_RELEASE_DIR)/$(OUT_WIN64_UNPACKED_BETTER_NAME) * + +windows-portable-release: windows-portable + ./windowsportable.sh $(OUT_WIN64_PORTABLE) $(OUT_WIN64_PORTABLE_BETTER_NAME) $(CURRENT_RELEASE_DIR) $(VERSION) + +windows-release: windows-setup-release windows-unpacked-release windows-portable-release + +release: web-release debian-release pacman-release windows-release + clean: $(YARN) --cwd matrix-js-sdk clean $(YARN) --cwd matrix-react-sdk clean $(YARN) --cwd element-web clean $(YARN) --cwd element-desktop clean + rm -f element-desktop/webapp + rm -rf element-web/dist + rm -rf $(RELEASE_DIR) diff --git a/windowsportable.sh b/windowsportable.sh new file mode 100755 index 0000000..02ac9b8 --- /dev/null +++ b/windowsportable.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +set -e + +portable_exe=$1 +dest_name=$2 +release_dir=$3 +version=$4 + +dest_path=$release_dir/$dest_name/SchildiChat + +mkdir -p $dest_path/app +cp "$portable_exe" $dest_path/app/dontclick.exe + +cat >$dest_path/SchildiChat_Portable.bat <nul +set ALLUSERSPROFILE=%DATA_DIR%\AppData\Roaming>nul +set PROGRAMDATA=%DATA_DIR%\AppData\Roaming>nul + +REM -- Start the application +start "" /D"%CURRENT_DIR%\app" "dontclick.exe" +EOL + +cat >$dest_path/README.txt < $dest_path/app/version +else + echo ${version} > $dest_path/app/version +fi + +pushd $dest_path/.. +zip -r ../$dest_name.zip * +popd + +rm -r $release_dir/$dest_name + +echo +echo "Packaged $release_dir/$dest_name.zip"