41 lines
1.1 KiB
JavaScript
Executable File
41 lines
1.1 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
const fs = require('fs');
|
|
const program = require('commander');
|
|
const uhk = require('./uhk')
|
|
require('shelljs/global');
|
|
|
|
(async function() {
|
|
config.fatal = true;
|
|
|
|
program
|
|
.usage(`firmwarePath`)
|
|
.parse(process.argv);
|
|
|
|
if (program.args.length < 1) {
|
|
console.error('No firmware path specified.');
|
|
exit(1);
|
|
}
|
|
const firmwarePath = program.args[0];
|
|
|
|
if (program.args.length < 2) {
|
|
console.error('No layout specified.');
|
|
exit(1);
|
|
}
|
|
const layout = program.args[1];
|
|
if (!['ansi', 'iso'].includes(layout)) {
|
|
console.error('The specified layout is neither ansi nor iso.');
|
|
exit(1);
|
|
}
|
|
const isIso = layout === 'iso';
|
|
|
|
config.verbose = true;
|
|
await uhk.updateFirmwares(firmwarePath);
|
|
const device = uhk.getUhkDevice();
|
|
const configBuffer = fs.readFileSync(`${firmwarePath}/devices/uhk60-right/config.bin`);
|
|
await uhk.writeUca(device, configBuffer);
|
|
await uhk.writeHca(device, isIso);
|
|
await uhk.switchKeymap(device, 'TES');
|
|
console.log('All done!')
|
|
config.verbose = false;
|
|
})();
|