node-raspberrypi-usbboot
Advanced tools
Comparing version 1.1.0-build-aethernet-allow-custom-sb-assets-2605716d9cad91cee838ca28dba6d94103fe2e31-1 to 1.1.0-build-aethernet-allow-custom-sb-assets-5d1566668843688344ad0fb4ef40dbd5a108858b-1
@@ -251,5 +251,11 @@ "use strict"; | ||
}; | ||
const safeReadFile = async (filename) => { | ||
const getFileBuffer = async (device, filename, extraFolder) => { | ||
try { | ||
return await (0, promises_1.readFile)(Path.join(__dirname, '..', 'blobs', filename)); | ||
if (extraFolder) { | ||
const extraBuffer = await (0, promises_1.readFile)(Path.join(extraFolder, filename)); | ||
if (extraBuffer !== undefined) { | ||
debug(`Sending buffer from ${extraFolder}/${filename}`); | ||
return extraBuffer; | ||
} | ||
} | ||
} | ||
@@ -259,6 +265,11 @@ catch (e) { | ||
} | ||
}; | ||
const unsafeReadFile = async (filename) => { | ||
try { | ||
return await (0, promises_1.readFile)(filename); | ||
const folder = device.deviceDescriptor.idProduct === USB_PRODUCT_ID_BCM2711_BOOT | ||
? 'cm4' | ||
: 'raspberrypi'; | ||
const buffer = await (0, promises_1.readFile)(Path.join(__dirname, '..', 'blobs', folder, filename)); | ||
if (buffer === undefined) { | ||
debug("Can't read file", filename); | ||
} | ||
return buffer; | ||
} | ||
@@ -269,19 +280,2 @@ catch (e) { | ||
}; | ||
const getFileBuffer = async (device, filename, extraFolder) => { | ||
if (extraFolder) { | ||
const extraBuffer = await unsafeReadFile(Path.join(extraFolder, filename)); | ||
if (extraBuffer !== undefined) { | ||
debug(`Sending buffer from ${extraFolder}/${filename}`); | ||
return extraBuffer; | ||
} | ||
} | ||
const folder = device.deviceDescriptor.idProduct === USB_PRODUCT_ID_BCM2711_BOOT | ||
? 'cm4' | ||
: 'raspberrypi'; | ||
const buffer = await safeReadFile(Path.join(folder, filename)); | ||
if (buffer === undefined) { | ||
debug("Can't read file", filename); | ||
} | ||
return buffer; | ||
}; | ||
/** | ||
@@ -392,2 +386,3 @@ * @summary Create a boot message buffer | ||
// Prepare already connected devices | ||
// eslint-disable-next-line @typescript-eslint/no-floating-promises | ||
usb_1.usb.getDeviceList().map(this.boundAttachDevice); | ||
@@ -401,4 +396,3 @@ // At this point all devices from `usg.getDeviceList()` above | ||
usb_1.usb.on('detach', this.boundDetachDevice); | ||
// ts-ignore because of a confusion between NodeJS.Timer and number | ||
// @ts-ignore | ||
// @ts-expect-error because of a confusion between NodeJS.Timer and number | ||
this.interval = setInterval(() => { | ||
@@ -454,3 +448,3 @@ // usb.getDeviceList().forEach(this.boundAttachDevice); | ||
let forceSecondstage = false; | ||
if (device.deviceDescriptor.iSerialNumber == (usbbootDevice === null || usbbootDevice === void 0 ? void 0 : usbbootDevice.last_serial)) { | ||
if (device.deviceDescriptor.iSerialNumber === (usbbootDevice === null || usbbootDevice === void 0 ? void 0 : usbbootDevice.last_serial)) { | ||
if (usbbootDevice.step > 0) { | ||
@@ -469,3 +463,3 @@ forceSecondstage = true; | ||
} | ||
debug('Found serial number', device.deviceDescriptor.iSerialNumber, `${forceSecondstage ? " => Forced second stage" : ""}`); | ||
debug('Found serial number', device.deviceDescriptor.iSerialNumber, `${forceSecondstage ? ' => Forced second stage' : ''}`); | ||
debug('port id', devicePortId(device)); | ||
@@ -476,3 +470,4 @@ try { | ||
if ((device.deviceDescriptor.iSerialNumber === 0 || | ||
device.deviceDescriptor.iSerialNumber === 3) && !forceSecondstage) { | ||
device.deviceDescriptor.iSerialNumber === 3) && | ||
!forceSecondstage) { | ||
debug('Sending bootcode.bin', devicePortId(device)); | ||
@@ -518,2 +513,3 @@ this.step(device, 0); | ||
async fileServer(device, endpoint, step, extraFolder) { | ||
// eslint-disable-next-line no-constant-condition | ||
while (true) { | ||
@@ -520,0 +516,0 @@ let data; |
@@ -8,5 +8,6 @@ # Change Log | ||
# v1.1.0 | ||
## (2024-05-16) | ||
## (2024-06-07) | ||
* minor: allow passing custom assets to start SB protected CM4 [Edwin Joassart] | ||
* patch: fix linter, formatting and old errors [Edwin Joassart] | ||
@@ -13,0 +14,0 @@ # v1.0.8 |
{ | ||
"name": "node-raspberrypi-usbboot", | ||
"version": "1.1.0-build-aethernet-allow-custom-sb-assets-2605716d9cad91cee838ca28dba6d94103fe2e31-1", | ||
"version": "1.1.0-build-aethernet-allow-custom-sb-assets-5d1566668843688344ad0fb4ef40dbd5a108858b-1", | ||
"description": "Transforms Raspberry Pi Compute Modules and Zeros to mass storage devices.", | ||
@@ -8,3 +8,3 @@ "main": "build/index.js", | ||
"scripts": { | ||
"prettier": "balena-lint --fix --typescript lib/*.ts", | ||
"prettier": "balena-lint --fix --typescript typings lib", | ||
"lint": "balena-lint --typescript lib/*.ts", | ||
@@ -43,4 +43,4 @@ "build": "npm run lint && rimraf build && tsc", | ||
"versionist": { | ||
"publishedAt": "2024-05-16T11:34:51.000Z" | ||
"publishedAt": "2024-06-07T11:45:41.285Z" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
28087882
600