Files
bare-operating-system/lib/bare-os-host-flags.mjs
T
Raven Scott 302c968bef
Release rolling / release (push) Successful in 6m48s
Update booter
2026-07-31 13:00:45 -04:00

56 lines
1.6 KiB
JavaScript

/**
* Shared host CLI flags for seeder/booter standalones and package entrypoints.
*/
import path from 'path'
/**
* @param {string[]} argv
* @returns {{ datadir: string|null, rest: string[] }}
*/
export function parseHostFlags(argv) {
let datadir = null
const rest = []
for (let i = 0; i < argv.length; i++) {
const a = argv[i]
if (a === '--datadir' || a === '--data-dir') {
const v = argv[++i]
if (v != null && v !== '') datadir = v
} else if (a.startsWith('--datadir=')) {
datadir = a.slice('--datadir='.length)
} else if (a.startsWith('--data-dir=')) {
datadir = a.slice('--data-dir='.length)
} else {
rest.push(a)
}
}
const trimmed = datadir != null ? String(datadir).trim() : ''
return { datadir: trimmed || null, rest }
}
/**
* Apply `--datadir` to `BARE_OS_HOST_DATA` before Corestore paths are resolved.
* @param {string|null|undefined} datadir
* @returns {string|null}
*/
export function applyHostDataDir(datadir) {
if (!datadir) return null
const resolved = path.resolve(String(datadir))
if (typeof globalThis.process === 'undefined') {
globalThis.process = { env: {} }
}
if (!globalThis.process.env) globalThis.process.env = {}
globalThis.process.env.BARE_OS_HOST_DATA = resolved
return resolved
}
/**
* Parse argv and set BARE_OS_HOST_DATA when `--datadir` is present.
* @param {string[]} argv
* @returns {{ datadir: string|null, rest: string[] }}
*/
export function applyHostFlagsFromArgv(argv) {
const parsed = parseHostFlags(argv)
if (parsed.datadir) applyHostDataDir(parsed.datadir)
return parsed
}