- execute-command/upload/download accept host/port/username/password inline to open an ephemeral connection for a single call - add redactSecret/redactSecrets to mask credentials in logs and errors - logger log()/handleError() accept optional secrets[] for redaction - add SSH_CONFIG_MISSING error code and --password-from-env CLI flag - dynamic-mode startup: server runs with no static config
34 lines
925 B
JavaScript
34 lines
925 B
JavaScript
#!/usr/bin/env node
|
|
|
|
import { execSync } from "node:child_process";
|
|
import { chmodSync } from "node:fs";
|
|
import { join } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { dirname } from "node:path";
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
const rootDir = join(__dirname, "..");
|
|
const buildFile = join(rootDir, "build", "index.js");
|
|
|
|
// Run TypeScript compiler
|
|
console.log("Building TypeScript...");
|
|
execSync("tsc", { stdio: "inherit", cwd: rootDir });
|
|
|
|
// Make executable on Unix-like systems (Linux, macOS, etc.)
|
|
if (process.platform !== "win32") {
|
|
try {
|
|
chmodSync(buildFile, 0o755);
|
|
console.log("Made build/index.js executable");
|
|
} catch (error) {
|
|
console.warn(
|
|
"Warning: Could not set executable permissions:",
|
|
error.message
|
|
);
|
|
}
|
|
} else {
|
|
console.log("Skipping chmod on Windows");
|
|
}
|
|
|
|
console.log("Build complete!");
|