31 lines
926 B
TypeScript
31 lines
926 B
TypeScript
import { monitorFile, Process } from "astal";
|
|
import { astalInstanceName } from "../app";
|
|
import { getUserDirs } from "./user";
|
|
|
|
const monitoringPaths = [ "./scripts", "./window", "./app.ts", "env.d.ts" ];
|
|
|
|
interface InstanceProps {
|
|
instanceName?: string;
|
|
log?: boolean;
|
|
}
|
|
|
|
export function restartInstance(props: InstanceProps = { instanceName: "astal", log: false }): void {
|
|
Process.exec_async(`astal -q ${props.instanceName}`, () => {});
|
|
Process.exec_async(`ags run ${ props.log && `--log-file
|
|
${ getUserDirs().cache}/ags-${ astalInstanceName || "astal" }.log` }`.replaceAll('\n', ' ').trim(),
|
|
() => {}
|
|
)
|
|
}
|
|
|
|
export function monitorPaths(): void {
|
|
monitoringPaths.map((path: string) => {
|
|
monitorFile(
|
|
path,
|
|
() => restartInstance({
|
|
instanceName: astalInstanceName || "astal",
|
|
log: true
|
|
})
|
|
)
|
|
});
|
|
}
|