This commit is contained in:
Raven Scott
2026-04-22 04:58:18 -04:00
parent 19b42d647f
commit 2151550f3a
9 changed files with 172 additions and 53 deletions
@@ -3,12 +3,25 @@
*/
import { bareHolesailEnvTruthy } from './bare-holesail-env.js'
import {
BARE_HOLESAIL_STATE_GUEST,
bareHolesailManagedReadState,
bareHolesailManagedServiceIsRunning,
bareHolesailManagedStartOne,
bareHolesailManagedWriteState
} from './bare-holesail-managed.js'
/**
* Stock **`bare-www-*`** rows belong in **guest** managed state (initd / boot), not the caller's
* `~/.holesail` file.
* @param {Record<string, string | undefined>} env
*/
function wwwHolesailGuestEnv(env) {
return {
.../** @type {Record<string, string | undefined>} */ (env),
BARE_OS_HOLESAIL_STATE: BARE_HOLESAIL_STATE_GUEST
}
}
export const BARE_OS_WWW_HOLESAIL_CONNECTION_ID_PREFIX = 'bare-www-'
/**
@@ -47,7 +60,8 @@ export async function ensureBareOsWwwHolesailTunnel(ctx, env, port) {
}
if (!ctx.b4a || typeof ctx.b4a.from !== 'function') return
const { path, state } = await bareHolesailManagedReadState(ctx, env)
const gEnv = wwwHolesailGuestEnv(env)
const { path, state } = await bareHolesailManagedReadState(ctx, gEnv)
/** Holesail server mode requires an explicit loopback host. */
const wantHost = '127.0.0.1'
/** @type {Record<string, unknown>} */
@@ -66,7 +80,7 @@ export async function ensureBareOsWwwHolesailTunnel(ctx, env, port) {
if (server && curPort === p && enabled && hostOk) {
if (bareHolesailManagedServiceIsRunning()) {
try {
await bareHolesailManagedStartOne(ctx, env, id)
await bareHolesailManagedStartOne(ctx, gEnv, id)
} catch {
/* may already run */
}
@@ -76,11 +90,11 @@ export async function ensureBareOsWwwHolesailTunnel(ctx, env, port) {
}
state.connections[id] = want
await bareHolesailManagedWriteState(ctx, env, state)
await bareHolesailManagedWriteState(ctx, gEnv, state)
void path
if (bareHolesailManagedServiceIsRunning()) {
try {
await bareHolesailManagedStartOne(ctx, env, id)
await bareHolesailManagedStartOne(ctx, gEnv, id)
} catch (e) {
try {
ctx.console?.error?.(