File: //usr/lib/node_modules/openclaw/dist/daemon-install-CSNNf8Cl.js
import "./paths-B4BZAPZh.js";
import "./utils-7gb3VEps.js";
import "./subsystem-C5Sd3JES.js";
import "./exec-DnsD91Q4.js";
import "./host-env-security-ljCLeQmh.js";
import "./env-vars-CvvqezS9.js";
import "./prompt-style-Cpb9Qgq-.js";
import "./runtime-guard-BPCV9VPD.js";
import "./note-V05Ql9nY.js";
import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-Dy4IjjIL.js";
import { r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DpZTTZBG.js";
import { r as isSystemdUserServiceAvailable } from "./systemd-CINWs_QJ.js";
import { t as resolveGatewayService } from "./service-DGTWp5Hg.js";
import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BNX7A2z9.js";
//#region src/commands/onboard-non-interactive/local/daemon-install.ts
async function installGatewayDaemonNonInteractive(params) {
const { opts, runtime, port, gatewayToken } = params;
if (!opts.installDaemon) return;
const daemonRuntimeRaw = opts.daemonRuntime ?? DEFAULT_GATEWAY_DAEMON_RUNTIME;
const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
if (process.platform === "linux" && !systemdAvailable) {
runtime.log("Systemd user services are unavailable; skipping service install.");
return;
}
if (!isGatewayDaemonRuntime(daemonRuntimeRaw)) {
runtime.error("Invalid --daemon-runtime (use node or bun)");
runtime.exit(1);
return;
}
const service = resolveGatewayService();
const { programArguments, workingDirectory, environment } = await buildGatewayInstallPlan({
env: process.env,
port,
token: gatewayToken,
runtime: daemonRuntimeRaw,
warn: (message) => runtime.log(message),
config: params.nextConfig
});
try {
await service.install({
env: process.env,
stdout: process.stdout,
programArguments,
workingDirectory,
environment
});
} catch (err) {
runtime.error(`Gateway service install failed: ${String(err)}`);
runtime.log(gatewayInstallErrorHint());
return;
}
await ensureSystemdUserLingerNonInteractive({ runtime });
}
//#endregion
export { installGatewayDaemonNonInteractive };