chore: tighten pid logic

This commit is contained in:
Aarnav Tale 2025-05-04 15:32:10 -04:00
parent 8fdea07fbd
commit ebea84d077
No known key found for this signature in database
2 changed files with 4 additions and 6 deletions

View File

@ -1,3 +0,0 @@
export function isHeadscaleServeCmd(cmdline: string): boolean {
return cmdline.includes('headscale') && cmdline.includes("serve");
}

View File

@ -7,7 +7,6 @@ import { ApiClient } from '~/server/headscale/api-client';
import log from '~/utils/log';
import { HeadplaneConfig } from '../schema';
import { Integration } from './abstract';
import { isHeadscaleServeCmd } from './cmdline.ts';
type T = NonNullable<HeadplaneConfig['integration']>['proc'];
export default class ProcIntegration extends Integration<T> {
@ -39,9 +38,11 @@ export default class ProcIntegration extends Integration<T> {
try {
log.debug('config', 'Reading %s', path);
const data = await readFile(path, 'utf8');
if (isHeadscaleServeCmd(data)) {
return pid;
if (!data.includes('headscale') && !data.includes('serve')) {
throw new Error('Found PID without Headscale serve command');
}
return pid;
} catch (error) {
log.error('config', 'Failed to read %s: %s', path, error);
}