import type { InstallContext } from "../types/context"; import { readText, renderTemplate, writeText } from "../lib/fs"; import { runVisible } from "../lib/process"; export async function deploySystemd(context: InstallContext): Promise { const values = { UI_BIND_HOST: context.config.uiBindHost, UI_PORT: context.config.uiPort, INSTALL_DIR: context.config.installDir, DATA_DIR: context.config.dataDir, LOG_DIR: context.config.logDir }; const hysteriaUnit = await readText(`${context.options.packageDir}/systemd/hysteria-server.service`); const adminUnit = renderTemplate(await readText(`${context.options.packageDir}/systemd/hy2xs-admin.service`), values); await writeText("/etc/systemd/system/hysteria-server.service", hysteriaUnit, 0o644); await writeText("/etc/systemd/system/hy2xs-admin.service", adminUnit, 0o644); await runVisible`systemctl daemon-reload`; await runVisible`systemctl enable hysteria-server hy2xs-admin`; }