46 lines
1.7 KiB
JavaScript
Executable File
46 lines
1.7 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
const fs = require('fs');
|
|
require('shelljs/global');
|
|
|
|
config.fatal = true;
|
|
config.verbose = true;
|
|
|
|
exec(`${__dirname}/generate-versions-h.js`);
|
|
|
|
const package = JSON.parse(fs.readFileSync(`${__dirname}/package.json`));
|
|
const version = package.firmwareVersion;
|
|
const releaseName = `uhk-firmware-${version}`;
|
|
const releaseDir = `${__dirname}/${releaseName}`;
|
|
const releaseFile = `${__dirname}/${releaseName}.tar.bz2`;
|
|
const agentDir = `${__dirname}/../lib/agent`;
|
|
|
|
const deviceSourceFirmwares = package.devices.map(device => `${__dirname}/../${device.source}`);
|
|
const moduleSourceFirmwares = package.modules.map(module => `${__dirname}/../${module.source}`);
|
|
rm('-rf', releaseDir, releaseFile, deviceSourceFirmwares, moduleSourceFirmwares);
|
|
|
|
exec(`cd ${__dirname}/../left; make clean; make -j8`);
|
|
exec(`cd ${__dirname}/../right; make clean; make -j8`);
|
|
|
|
exec(`git pull origin master; git checkout master`, { cwd: agentDir });
|
|
exec(`npm ci`, { cwd: agentDir });
|
|
|
|
for (const device of package.devices) {
|
|
const deviceDir = `${releaseDir}/devices/${device.name}`;
|
|
const deviceSource = `${__dirname}/../${device.source}`;
|
|
mkdir('-p', deviceDir);
|
|
chmod(644, deviceSource);
|
|
cp(deviceSource, `${deviceDir}/firmware.hex`);
|
|
exec(`npm run convert-user-config-to-bin -- ${deviceDir}/config.bin`, { cwd: agentDir });
|
|
}
|
|
|
|
for (const module of package.modules) {
|
|
const moduleDir = `${releaseDir}/modules`;
|
|
const moduleSource = `${__dirname}/../${module.source}`;
|
|
mkdir('-p', moduleDir);
|
|
chmod(644, moduleSource);
|
|
cp(moduleSource, `${moduleDir}/${module.name}.bin`);
|
|
}
|
|
|
|
cp(`${__dirname}/package.json`, releaseDir);
|
|
exec(`tar -cvjSf ${releaseFile} -C ${releaseDir} .`);
|