diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 0000000..001b0d2 --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1 @@ +uhk-firmware-* diff --git a/scripts/make-release.js b/scripts/make-release.js index 13c75d4..d8d33f0 100755 --- a/scripts/make-release.js +++ b/scripts/make-release.js @@ -4,14 +4,17 @@ require('shelljs/global'); config.fatal = true; -const version = JSON.parse(fs.readFileSync(`${__dirname}/package.json`)).version; +const package = JSON.parse(fs.readFileSync(`${__dirname}/package.json`)); +const version = package.version; const releaseName = `uhk-firmware-${version}`; const releaseDir = `${__dirname}/${releaseName}`; +const slavesDir = `${releaseDir}/slaves`; const releaseFile = `${__dirname}/${releaseName}.tar.bz2`; -const rightFirmwareFile = `${__dirname}/../right/build/uhk60-right_release/uhk-right.hex`; const leftFirmwareFile = `${__dirname}/../left/build/uhk60-left_release/uhk-left.bin`; -rm('-rf', releaseDir, releaseFile, leftFirmwareFile, rightFirmwareFile); +const masterSourceFirmwares = package.masters.map(master => `${__dirname}/../${master.source}`); +const slaveSourceFirmwares = package.slaves.map(slave => `${__dirname}/../${slave.source}`); +rm('-rf', releaseDir, releaseFile, masterSourceFirmwares, slaveSourceFirmwares); exec(`/opt/Freescale/KDS_v3/eclipse/kinetis-design-studio \ --launcher.suppressErrors \ @@ -20,11 +23,24 @@ exec(`/opt/Freescale/KDS_v3/eclipse/kinetis-design-studio \ -import ${__dirname}/../left/build \ -import ${__dirname}/../right/build \ -cleanBuild uhk-left \ --cleanBuild uhk-right`); +-cleanBuild uhk-right` +); + +for (let master of package.masters) { + const masterDir = `${releaseDir}/masters/${master.name}`; + const masterSource = `${__dirname}/../${master.source}`; + mkdir('-p', masterDir); + chmod(644, masterSource); + cp(masterSource, `${masterDir}/firmware.hex`); +} + +for (let slave of package.slaves) { + const slaveDir = `${releaseDir}/slaves`; + const slaveSource = `${__dirname}/../${slave.source}`; + mkdir('-p', slaveDir); + chmod(644, slaveSource); + cp(slaveSource, `${slaveDir}/${slave.name}.bin`); +} -chmod(644, rightFirmwareFile, leftFirmwareFile); -mkdir(releaseDir); -cp(rightFirmwareFile, releaseDir); -cp(leftFirmwareFile, releaseDir); cp(`${__dirname}/package.json`, releaseDir); exec(`tar -cvjSf ${releaseFile} -C ${releaseDir} .`); diff --git a/scripts/package.json b/scripts/package.json index 3a39c42..f5e1824 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -18,5 +18,19 @@ "version": "2.1.0", "dataModelVersion": "1.0.0", "usbProtocolVersion": "1.2.0", - "slaveProtocolVersion": "2.1.0" + "slaveProtocolVersion": "2.1.0", + "masters": [ + { + "moduleId": 0, + "name": "uhk60-right", + "source": "right/build/uhk60-right_release/uhk-right.hex" + } + ], + "slaves": [ + { + "moduleId": 1, + "name": "uhk60-left", + "source": "left/build/uhk60-left_release/uhk-left.bin" + } + ] }