This commit is contained in:
2026-08-18 18:11:28 -04:00
parent 0e9a650fa2
commit bbaf47028f
259 changed files with 0 additions and 0 deletions
@@ -0,0 +1,47 @@
/**
* Host OTA + --datadir prelude. Statically imported first from index.js so it
* runs before main(), and bare-pack embeds it without dynamic import().
*/
import { name, version, upgrade } from '../../../bin/meta/booter.mjs'
import { startPearOta, parseOtaFlags } from '../../../lib/bare-os-ota.mjs'
import { applyHostFlagsFromArgv } from '../../../lib/bare-os-host-flags.mjs'
function pathBasename(p) {
const s = String(p || '')
const i = Math.max(s.lastIndexOf('/'), s.lastIndexOf('\\'))
return i >= 0 ? s.slice(i + 1) : s
}
function hostArgv() {
const isBare = typeof globalThis.Bare !== 'undefined'
if (isBare) {
const a0 = globalThis.Bare.argv?.[0]
return globalThis.Bare.argv.slice(pathBasename(a0) === 'bare' ? 2 : 1)
}
return (globalThis.process?.argv || []).slice(2)
}
const argv = hostArgv()
const { rest: afterHost } = applyHostFlagsFromArgv(argv)
const { updates, storage } = parseOtaFlags(afterHost)
export const hostOta = await startPearOta({
upgrade,
version,
name: name || 'bare-os-booter',
updates,
storage,
})
if (typeof process !== 'undefined' && process.on) {
const onExit = async (code = 0) => {
await hostOta.close()
if (typeof globalThis.Bare !== 'undefined') globalThis.Bare.exit(code)
else process.exit(code)
}
for (const sig of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
process.on(sig, () => {
onExit(sig === 'SIGINT' ? 130 : 143).catch(() => {})
})
}
}