Files
firmware/scripts/make-release.js

49 lines
1.8 KiB
JavaScript
Executable File

#!/usr/bin/env node
const fs = require('fs');
require('shelljs/global');
config.fatal = true;
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 leftFirmwareFile = `${__dirname}/../left/build/uhk60-left_release/uhk-left.bin`;
const usbDir = `${__dirname}/../lib/agent/packages/usb`;
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 \
-noSplash \
-application org.eclipse.cdt.managedbuilder.core.headlessbuild \
-import ${__dirname}/../left/build \
-import ${__dirname}/../right/build \
-cleanBuild uhk-left \
-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`);
// exec(`${usbDir}/user-config-json-to-bin.ts ${masterDir}/config.bin`);
}
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`);
}
cp(`${__dirname}/package.json`, releaseDir);
exec(`tar -cvjSf ${releaseFile} -C ${releaseDir} .`);