benbusby / wally

The Flash(ing tool)

Home Page:https://ergodox-ez.com/pages/wally

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wally

Flash your ZSA Keyboard the EZ way.

Getting started

Wally comes in two flavors, a GUI and a CLI app. Download the application for your favorite platform from the release page.

Note for Linux users, follow the instructions from our wiki page before running the application.

Note for Mac OS users, the CLI requires libusb to be installed: brew install libusb

Contributing

The following instructions apply only to those who wish to actively develop Wally and contribute new features or bugfixes to this open-source project. If you simply want to flash your board with some fresh firmware, see above.

Found a bug? Open an issue here.

Wally is built using Go at its core and Preact for the UI. The binding between core and UI happens using a fork of the webview package. This guide assumes you have a proper Go and NodeJS development environment running.

Installing dev dependencies

Wally is compatible with Windows, Linux, and macOS. Developing using each platform requires some extra setup:

Windows

  1. Install TDM GCC
  2. Setup pkg-config - see http://www.mingw.org/wiki/FAQ "How do I get pkg-config installed?"
  3. Grab and install the latest version of libusb from here

Linux

Follow the instructions from our wiki page

macOS

Install libusb using brew:

brew install libusb

Serve the UI locally

From the ui folder run npm run serve or yarn dev to run a webpack dev server locally on port 8080.

Compile a dev build

Run the following:

go build -tags dev -o wally

This build will bind its UI with the local webpack server.

Compile the CLI

Run the following:

go build cli/main.go -o wally-cli

Compile a release build

Pre requisites for all OS

  1. Install dep and run the command dep ensure to grab all the go dependencies.
  2. Install go-bindata by running the command go get -u github.com/jteeuwen/go-bindata/....
  3. Install cross-env and webpack by running the command yarn global add cross-env webpack or npm i -g cross-env webpack.

Windows

Run build.win.bat

Linux

Run build.linux.sh

Mac OS

  1. Install libusb using brew: brew install libusb.
  2. Install upx using brew: brew install upx.
  3. Run build.osx.sh

The wally gui and cli apps should be in ./dist/osx .

Note: the GUI app won't include libusb so it needs to be installed on the computer running it. To embed libusb into the binary, install dylibbundler and run:

dylibbundler -of -b -x ./dist/osx/Wally.app/Contents/MacOS/Wally -d ./dist/osx/Wally.app/Contents/libs/

About

The Flash(ing tool)

https://ergodox-ez.com/pages/wally


Languages

Language:Go 42.1%Language:JavaScript 35.1%Language:CSS 11.4%Language:Shell 5.7%Language:HTML 3.8%Language:Dockerfile 1.8%