mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-03-30 04:11:57 +00:00
feat: Add in more options in the adding of a daemon
This commit is contained in:
@@ -19,19 +19,36 @@ export function containsAddress(x: string, port: number) {
|
|||||||
export async function checkPortListening(
|
export async function checkPortListening(
|
||||||
effects: Effects,
|
effects: Effects,
|
||||||
port: number,
|
port: number,
|
||||||
{
|
options: {
|
||||||
error = `Port ${port} is not listening`,
|
errorMessage: string
|
||||||
message = `Port ${port} is available`,
|
successMessage: string
|
||||||
} = {},
|
timeoutMessage?: string
|
||||||
|
timeout?: number
|
||||||
|
},
|
||||||
): Promise<CheckResult> {
|
): Promise<CheckResult> {
|
||||||
const hasAddress =
|
return Promise.race<CheckResult>([
|
||||||
containsAddress(await effects.runCommand(`cat /proc/net/tcp`), port) ||
|
Promise.resolve().then(async () => {
|
||||||
containsAddress(await effects.runCommand("cat /proc/net/udp"), port)
|
const hasAddress =
|
||||||
if (hasAddress) {
|
containsAddress(await effects.runCommand(`cat /proc/net/tcp`), port) ||
|
||||||
return { status: "passing", message }
|
containsAddress(await effects.runCommand("cat /proc/net/udp"), port)
|
||||||
}
|
if (hasAddress) {
|
||||||
return {
|
return { status: "passing", message: options.successMessage }
|
||||||
status: "failing",
|
}
|
||||||
message: error,
|
return {
|
||||||
}
|
status: "failing",
|
||||||
|
message: options.errorMessage,
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
new Promise((resolve) => {
|
||||||
|
setTimeout(
|
||||||
|
() =>
|
||||||
|
resolve({
|
||||||
|
status: "failing",
|
||||||
|
message:
|
||||||
|
options.timeoutMessage || `Timeout trying to check port ${port}`,
|
||||||
|
}),
|
||||||
|
options.timeout ?? 1_000,
|
||||||
|
)
|
||||||
|
}),
|
||||||
|
])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,10 +13,7 @@ type Daemon<
|
|||||||
command: ValidIfNoStupidEscape<Command> | [string, ...string[]]
|
command: ValidIfNoStupidEscape<Command> | [string, ...string[]]
|
||||||
|
|
||||||
ready: {
|
ready: {
|
||||||
display: null | {
|
display: string | null
|
||||||
name: string
|
|
||||||
message: string
|
|
||||||
}
|
|
||||||
fn: () => Promise<CheckResult> | CheckResult
|
fn: () => Promise<CheckResult> | CheckResult
|
||||||
trigger?: Trigger
|
trigger?: Trigger
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,9 +73,11 @@ export type Utils<WD> = {
|
|||||||
) => Promise<void>
|
) => Promise<void>
|
||||||
checkPortListening(
|
checkPortListening(
|
||||||
port: number,
|
port: number,
|
||||||
options?: {
|
options: {
|
||||||
error?: string
|
errorMessage: string
|
||||||
message?: string
|
successMessage: string
|
||||||
|
timeoutMessage?: string
|
||||||
|
timeout?: number
|
||||||
},
|
},
|
||||||
): Promise<CheckResult>
|
): Promise<CheckResult>
|
||||||
checkWebUrl(
|
checkWebUrl(
|
||||||
|
|||||||
Reference in New Issue
Block a user