mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
36 lines
688 B
TypeScript
36 lines
688 B
TypeScript
import os from "node:os";
|
|
import { publicIpv4, publicIpv6 } from "public-ip";
|
|
|
|
export const getShell = () => {
|
|
switch (os.platform()) {
|
|
case "win32":
|
|
return "powershell.exe";
|
|
case "darwin":
|
|
return "zsh";
|
|
default:
|
|
return "bash";
|
|
}
|
|
};
|
|
|
|
export const getPublicIpWithFallback = async () => {
|
|
// @ts-ignore
|
|
let ip = null;
|
|
try {
|
|
ip = await publicIpv4();
|
|
} catch (error) {
|
|
console.log(
|
|
"Error to obtain public IPv4 address, falling back to IPv6",
|
|
// @ts-ignore
|
|
error.message,
|
|
);
|
|
try {
|
|
ip = await publicIpv6();
|
|
} catch (error) {
|
|
// @ts-ignore
|
|
console.error("Error to obtain public IPv6 address", error.message);
|
|
ip = null;
|
|
}
|
|
}
|
|
return ip;
|
|
};
|