Files
Fluxup_PAP/node_modules/lan-network/dist/lan-network-cli.js
2026-03-10 16:18:05 +00:00

120 lines
3.3 KiB
JavaScript
Executable File

#!/usr/bin/env node
var e = require("./chunks/index-chunk.js");
!function cli() {
let t = "default";
e: for (let e = 1; e < process.argv.length; e++) {
const o = process.argv[e].trim().toLowerCase();
switch (o) {
case "-h":
case "--help":
t = "help";
break e;
case "-d":
case "--dhcp":
t = "dhcp";
break;
case "-p":
case "--probe":
t = "probe";
break;
case "-f":
case "--fallback":
t = "fallback";
break;
default:
if (o.startsWith("-")) {
throw new TypeError(`Invalid flag: ${o}`);
}
}
}
switch (t) {
case "help":
return function help() {
const e = [ "Discover the machine's default gateway and local network IP (test utility)", "", "Usage", " $ lan-network", " $ lan-network --default", "", "Modes", " --probe Discover gateway via UDP4 socket to publicly routed address", " --dhcp Discover gateway via DHCPv4 discover broadcast", " --fallback Return highest-priority IPv4 network interface assignment", " --default Try the three above modes in order", " --help Print help output" ].join("\n");
console.log(e);
}();
case "dhcp":
return async function dhcp() {
const t = e.interfaceAssignments();
if (!t.length) {
console.error("No available network interface assignments");
process.exit(1);
}
const o = await Promise.allSettled(t.map((t => e.dhcpDiscover(t))));
let s = null;
for (const r of o) {
if ("fulfilled" === r.status && r.value) {
if (s = e.matchAssignment(t, r.value)) {
break;
}
}
}
if (s && s !== e.DEFAULT_ASSIGNMENT) {
console.log(JSON.stringify(s, null, 2));
process.exit(0);
} else {
console.error("No DHCP router was discoverable");
process.exit(1);
}
}();
case "probe":
return async function probe() {
const t = e.interfaceAssignments();
if (!t.length) {
console.error("No available network interface assignments");
process.exit(1);
}
try {
const o = await e.probeDefaultRoute();
const s = e.matchAssignment(t, o);
if (s && s !== e.DEFAULT_ASSIGNMENT) {
console.log(JSON.stringify(s, null, 2));
process.exit(0);
} else {
console.error("No default gateway or route");
process.exit(1);
}
} catch (e) {
console.error("No default gateway or route");
console.error(e);
process.exit(1);
}
}();
case "fallback":
return async function fallback() {
const t = e.interfaceAssignments();
if (!t.length) {
console.error("No available network interface assignments");
process.exit(1);
}
const o = {
...t[0],
gateway: null
};
console.log(JSON.stringify(o, null, 2));
process.exit(0);
}();
case "default":
(async function main() {
const t = await e.lanNetwork();
if (t !== e.DEFAULT_ASSIGNMENT) {
console.log(JSON.stringify(t, null, 2));
process.exit(0);
} else {
console.error("No default gateway, route, or DHCP router");
process.exit(1);
}
})();
}
}();
//# sourceMappingURL=lan-network-cli.js.map