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