diff --git a/README.md b/README.md new file mode 100644 index 0000000..776b2de --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# Bluesound BluOS Controller Builder + +This CLI tool will download the latest BluOS Controller software from +www.bluesound.com/downloads and then patch it for Linux and build a Snap +and AppImage package. + +This is in response for the desire to be able to run the BluOS Controller +software on linux though Bluesound does not officially release a Linux version + + +## Prerequisites +In order for this CLI tool to work correctly, you **must** have NodeJS installed +on your system. You can use any method you desire, however since there are sevearl +methods that people choose to use based on their preference, this CLI takes a +configuration parameter to the path of your chosen nodejs `bin` folder + +The simplest way to install the latest stable version of NodeJS is to use NVM. Follow +the steps avaialble at the [NVM Install](https://github.com/nvm-sh/nvm#installing-and-updating) readme + + +Once NodeJS is installed on your system use the following command to find the path to +your NodeJS bin folder: + +``` +$ which npm +/home/david/.nvm/versions/node/v14.3.0/bin/npm +``` + +When configuring this cli tool, in the `config.yaml` file, place the path to the node bin folder. + +Example config.yaml: + +```yaml +nodeBinPath: "/home/david/.nvm/versions/node/v14.3.0/bin/" +``` + +In the future I may try to add an auto-detection of this. For now this was quick and easy. + +## Running the tool + +Once you have NodeJS set up, simply download the bs-patch tool from the Releases section +of this repository and execute it: + +``` +$ ./bs-patch +INFO[0000] Reading config.yaml +INFO[0000] Finding Latest BluOS Controller +INFO[0002] Downloading Latest BlueOS controller: https://www.bluesound.com/wp-content/uploads/2020/11/BluOS-Controller-3.12.1.dmg +Downloading... 98 MB complete +INFO[0008] Extracting BlueOS Controller DMG +INFO[0010] Extracting ASAR +INFO[0011] Patching electron.js +INFO[0011] Patching app.js - Update Check +INFO[0011] Patching app.js - Update Platform +INFO[0011] Adding electron dependency +INFO[0028] Adding electron-builder dependency +INFO[0038] Building Snap and AppImage +INFO[0046] Cleaning up +``` + +A new folder named `dist` will be created and contain the Snap and AppImage files. Enjoy! \ No newline at end of file