From ee48bc58bf2f20d87873cd3fb5e24a3f2a10c26e Mon Sep 17 00:00:00 2001 From: Neil MacDougall Date: Thu, 10 Dec 2020 08:48:52 +0000 Subject: [PATCH] A few minor fixes --- electron/README.md | 8 +++++- electron/build.sh | 66 +++++++++++++++++++++++++++++++++++++++++++++ electron/menu.js | 7 ++++- electron/package.sh | 15 +---------- electron/run.sh | 64 ++----------------------------------------- 5 files changed, 82 insertions(+), 78 deletions(-) create mode 100755 electron/build.sh diff --git a/electron/README.md b/electron/README.md index 083ce35441..276bf542f9 100644 --- a/electron/README.md +++ b/electron/README.md @@ -18,4 +18,10 @@ You can also run the UI with `ng serve` from the top-level folder and then start `./run.sh dev` -to load the UI from `https://127.0.0.1:4200` \ No newline at end of file +to load the UI from `https://127.0.0.1:4200` + +# Packaging + +Packaging as a DMG file for Mac: + +`./package.sh all` \ No newline at end of file diff --git a/electron/build.sh b/electron/build.sh new file mode 100755 index 0000000000..c27e9b007c --- /dev/null +++ b/electron/build.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +# Script folder +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" +STRATOS="`cd "${DIR}/..";pwd`" + +BUILD_FRONTEND=false +BUILD_BACKEND=false +ARGS="" + +if [ "$1" == "fe" ]; then + BUILD_FRONTEND=true + shift +elif [ "$1" == "be" ]; then + BUILD_BACKEND=true + shift +elif [ "$1" == "all" ]; then + BUILD_FRONTEND=true + BUILD_BACKEND=true + shift +fi + +if [ "$1" == "dev" ]; then + ARGS="dev" +fi + +pushd ${DIR} > /dev/null +# Checks for fresh run on checkout +if [ ! -d "./node_modules" ]; then + echo "Installing node modules ..." + npm install +fi +popd > /dev/null + +pushd ${STRATOS} > /dev/null + +cat ./package.json | jq -r .version > ${DIR}/version + +if [ ! -d "./node_modules" ]; then + echo "Installing node modules in top-level folder ..." + npm install +fi + +if [ "$1" != "be" ] && [ ! -d "./dist" ]; then + BUILD_FRONTEND=true + echo "Frontend has not been built - will build" +fi + +if [ ! -f "./src/jetstream/jetstream" ]; then + BUILD_BACKEND=true + echo "Backend has not been built - will build" +fi + +if [ "$BUILD_FRONTEND" == "true" ]; then + # Ensure the desktop-extendsions are included + STRATOS_YAML=./electron/stratos.yaml ng build --configuration=desktop +fi +if [ "$BUILD_BACKEND" == "true" ]; then + # Ensure we include the desktop backend plugin + STRATOS_YAML=./electron/stratos.yaml npm run prepare-backend + npm run build-backend +fi +cp ./src/jetstream/jetstream ./electron +cp -R ${STRATOS}/dist ${DIR} +cp -R ${STRATOS}/dev-ssl ${DIR} +popd > /dev/null diff --git a/electron/menu.js b/electron/menu.js index 0b22775d4d..e53d6087a2 100644 --- a/electron/menu.js +++ b/electron/menu.js @@ -12,7 +12,12 @@ const isMac = process.platform === 'darwin' let appMainWindow; let appHomeUrl; -const version = fs.readFileSync('./version').toString(); +// Read version file +const versionFile = path.join(__dirname, `./version`); +let version = 'dev'; +if (fs.existsSync(versionFile)) { + version = fs.readFileSync(versionFile).toString(); +} function getMenu(mainWindow, homeUrl) { appMainWindow = mainWindow; diff --git a/electron/package.sh b/electron/package.sh index c260b1e8e7..54daf1d880 100755 --- a/electron/package.sh +++ b/electron/package.sh @@ -4,20 +4,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" STRATOS="`cd "${DIR}/..";pwd`" -pushd ${DIR} > /dev/null -rm -rf dist -rm -rf out -popd > /dev/null - -pushd ${STRATOS} > /dev/null -rm -rf dist -ng build --configuration=desktop -npm run build-backend -cp ./src/jetstream/jetstream ./electron -cp -R ${STRATOS}/dist ${DIR} -cp -R ${STRATOS}/dev-ssl ${DIR} -popd > /dev/null - +source "${DIR}/build.sh" pushd ${DIR} > /dev/null rm -rf dist/*es5* diff --git a/electron/run.sh b/electron/run.sh index 96b7297beb..fd437c12a9 100755 --- a/electron/run.sh +++ b/electron/run.sh @@ -4,67 +4,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" STRATOS="`cd "${DIR}/..";pwd`" -BUILD_FRONTEND=false -BUILD_BACKEND=false -ARGS="" +source "${DIR}/build.sh" -if [ "$1" == "fe" ]; then - BUILD_FRONTEND=true - shift -elif [ "$1" == "be" ]; then - BUILD_BACKEND=true - shift -elif [ "$1" == "all" ]; then - BUILD_FRONTEND=true - BUILD_BACKEND=true - shift -fi - -if [ "$1" == "dev" ]; then - ARGS="dev" -fi - -pushd ${DIR} > /dev/null -# Checks for fresh run on checkout -if [ ! -d "./node_modules" ]; then - echo "Installing node modules ..." - npm install -fi -popd > /dev/null - -pushd ${STRATOS} > /dev/null - -cat ./package.json | jq -r .version > ${DIR}/version - -if [ ! -d "./node_modules" ]; then - echo "Installing node modules in top-level folder ..." - npm install -fi - -if [ "$1" != "be" ] && [ ! -d "./dist" ]; then - BUILD_FRONTEND=true - echo "Frontend has not been built - will build" -fi - -if [ ! -f "./src/jetstream/jetstream" ]; then - BUILD_BACKEND=true - echo "Backend has not been built - will build" -fi - -if [ "$BUILD_FRONTEND" == "true" ]; then - # Ensure the desktop-extendsions are included - STRATOS_YAML=./electron/stratos.yaml ng build --configuration=desktop -fi -if [ "$BUILD_BACKEND" == "true" ]; then - # Ensure we include the desktop backend plugin - STRATOS_YAML=./electron/stratos.yaml npm run prepare-backend - npm run build-backend -fi -cp ./src/jetstream/jetstream ./electron -cp -R ${STRATOS}/dist ${DIR} -cp -R ${STRATOS}/dev-ssl ${DIR} -popd > /dev/null - - -echo "Building ...." +echo "Running electron app ...." npm run electron -- ${ARGS} \ No newline at end of file