Files
HY2XS_flamy/orchestrator/src/steps/systemd.ts
T

22 lines
974 B
TypeScript

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<void> {
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`;
}