22 lines
974 B
TypeScript
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`;
|
|
}
|