nali-ip-cli
Version:
Parse geoinfo of IP Address online without leaving your terminal
61 lines (52 loc) • 1.57 kB
JavaScript
const commander = require("commander");
const { select } = require("@inquirer/prompts");
const { spacing } = require("pangu");
const { yellow, green, red } = require("chalk");
const { DEFAULT_QUERY_SERVER } = require("../util/const");
const {
getPersistServerName,
setPersistServerName,
} = require("../util/persist");
const { QUERY_SERVER_SCHEMA } = require("../util/server-schema");
async function main() {
const { current, defaultServer } = commander.opts();
const persistServerName = await getPersistServerName();
let newServerName;
console.log(
spacing(
`Current query server is [${yellow(
persistServerName
? persistServerName
: `${DEFAULT_QUERY_SERVER} (by default)`
)}]
`
)
);
if (current) return;
if (!defaultServer) {
newServerName = await select({
message: "Select a query server: ",
choices: Object.keys(QUERY_SERVER_SCHEMA).map((v) => {
return {
value: v,
};
}),
pageSize: 10,
});
} else {
newServerName = DEFAULT_QUERY_SERVER;
}
await setPersistServerName(newServerName);
console.log(green(`Change query server to [${newServerName}] success!`));
}
commander
.name("server")
.usage("[options]")
.description("更改查询服务器")
.option("-c, --current", "查看当前使用的查询服务器")
.option("-d, --defaultServer", "使用默认的查询服务器")
.parse(process.argv);
main().catch((err) => {
console.error("嗷呜,出现错误惹! " + err.message || err);
});