Copy update-firmwares.js as factory-update.js
This commit is contained in:
48
packages/usb/factory-update.js
Executable file
48
packages/usb/factory-update.js
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
const fs = require('fs');
|
||||||
|
const program = require('commander');
|
||||||
|
const tmp = require('tmp');
|
||||||
|
const decompress = require('decompress');
|
||||||
|
const decompressTarbz = require('decompress-tarbz2');
|
||||||
|
const uhk = require('./uhk')
|
||||||
|
require('shelljs/global');
|
||||||
|
|
||||||
|
(async function() {
|
||||||
|
try {
|
||||||
|
config.fatal = true;
|
||||||
|
|
||||||
|
program
|
||||||
|
.usage(`firmwarePath`)
|
||||||
|
.option('-u, --overwrite-user-config', 'Overwrite the user configuration with the one that is bundled with the firmware')
|
||||||
|
.parse(process.argv);
|
||||||
|
|
||||||
|
if (program.args.length == 0) {
|
||||||
|
console.error('No firmware path specified.');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let firmwarePath = program.args[0];
|
||||||
|
|
||||||
|
// If a tarball is specified then extract it and override firmwarePath with the target directory name.
|
||||||
|
if (test('-f', firmwarePath)) {
|
||||||
|
const tmpObj = tmp.dirSync();
|
||||||
|
await decompress(firmwarePath, tmpObj.name, {plugins: [decompressTarbz()]});
|
||||||
|
firmwarePath = tmpObj.name;
|
||||||
|
}
|
||||||
|
config.verbose = true;
|
||||||
|
await uhk.updateFirmwares(firmwarePath);
|
||||||
|
|
||||||
|
if (program.overwriteUserConfig) {
|
||||||
|
const device = uhk.getUhkDevice();
|
||||||
|
const configBuffer = fs.readFileSync(`${firmwarePath}/devices/uhk60-right/config.bin`);
|
||||||
|
await uhk.writeConfig(device, configBuffer, false);
|
||||||
|
await uhk.applyConfig(device);
|
||||||
|
await uhk.launchEepromTransfer(device, uhk.eepromOperations.write, uhk.eepromTransfer.writeUserConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
config.verbose = false;
|
||||||
|
} catch (exception) {
|
||||||
|
console.error(exception.message);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
})();
|
||||||
Reference in New Issue
Block a user