Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 1.72 KB

electron.md

File metadata and controls

37 lines (28 loc) · 1.72 KB

Electron Wrapper

Python & JavaScript dependencies can be wrapped with electron to make deployment a bit easer for those running macOS. This is far from the ideal way to package and deploy an application for the mac, but it eliminates the need for the command line during the install process. A Cocoa or Swift wrapper should be made, Electron adds ~300mb to the ~19mb micboard executable.

There are a few different layers.

The frontend is written in JavaScript. webpack packages js, css, and font dependencies into a minified and distributable file.

The Micboard Server is written in python. pyinstaller packages a python interpreter, micboard, and its dependencies into a single executable.

The Electron wrapper is written in JavaScript. It provides a menubar app with access to micboard, the micboard configuration directory, and the micboard logs.

Building the Electron Wrapper

Here are the steps to generate micboard-server.app

Download micboard and install dependencies.

micboard@micboard:~$ git clone https://github.com/karlcswanson/micboard
micboard@micboard:~$ cd micboard/
micboard@micboard:~/micboard$ pip3 install -r py/requirements.txt
micboard@micboard:~/micboard$ pip3 install pyinstaller
micboard@micboard:~/micboard$ npm install

Build the frontend JavaScript using webpack.

micboard@micboard:~/micboard$ npm run build

Package the micboard server application using PyInstaller.

micboard@micboard:~/micboard$ npm run binary

Wrap the PyInstaler generated executable within an Electron app using Electron-builder.

micboard@micboard:~/micboard$ npm run pack