feat: add amd64 node support
This commit is contained in:
+32
-15
@@ -2,6 +2,17 @@ import { defineCommand } from "citty";
|
||||
import { getPodContainerName, getPodForDeployment } from "../lib/shared";
|
||||
import { execClient } from "../lib/k8s";
|
||||
|
||||
function prepareInteractiveStdin(): (() => void) | undefined {
|
||||
if (!process.stdin.isTTY) return;
|
||||
|
||||
process.stdin.setRawMode?.(true);
|
||||
process.stdin.resume();
|
||||
return () => {
|
||||
process.stdin.setRawMode?.(false);
|
||||
process.stdin.pause();
|
||||
};
|
||||
}
|
||||
|
||||
export const exec = defineCommand({
|
||||
meta: {
|
||||
name: "exec",
|
||||
@@ -23,21 +34,27 @@ export const exec = defineCommand({
|
||||
const podName = pod.metadata?.name;
|
||||
if (!podName) throw new Error(`No pod name found for deployment ${deployment}`);
|
||||
|
||||
const socket = await execClient.exec(
|
||||
namespace,
|
||||
podName,
|
||||
getPodContainerName(pod),
|
||||
command,
|
||||
process.stdout,
|
||||
process.stderr,
|
||||
process.stdin,
|
||||
Boolean(process.stdin.isTTY),
|
||||
);
|
||||
const restoreStdin = prepareInteractiveStdin();
|
||||
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
socket.onclose = () => resolve();
|
||||
socket.onerror = (event: { error?: unknown }) =>
|
||||
reject(event.error ?? new Error("Exec failed"));
|
||||
});
|
||||
try {
|
||||
const socket = await execClient.exec(
|
||||
namespace,
|
||||
podName,
|
||||
getPodContainerName(pod),
|
||||
command,
|
||||
process.stdout,
|
||||
process.stderr,
|
||||
process.stdin,
|
||||
Boolean(process.stdin.isTTY),
|
||||
);
|
||||
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
socket.onclose = () => resolve();
|
||||
socket.onerror = (event: { error?: unknown }) =>
|
||||
reject(event.error ?? new Error("Exec failed"));
|
||||
});
|
||||
} finally {
|
||||
restoreStdin?.();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user