mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-11 10:09:59 +00:00
Replace minimist, convert build scripts to ES modules + misc refactoring
This commit is contained in:
@@ -1,64 +1,55 @@
|
||||
"use strict";
|
||||
|
||||
import path from "path";
|
||||
import minimist from "minimist";
|
||||
import { __applicationVersion } from "../package.json";
|
||||
import yargs from "yargs";
|
||||
import { applicationName, applicationVersion } from "../config.json";
|
||||
|
||||
const argv = minimist(process.argv.slice(2), {
|
||||
boolean: ["daemon", "help", "version"],
|
||||
string: ["__name", "host", "port", "password"],
|
||||
alias: {
|
||||
d: "daemon",
|
||||
h: "help",
|
||||
v: "version",
|
||||
n: "host",
|
||||
p: "port",
|
||||
P: "password"
|
||||
},
|
||||
default: {
|
||||
__name: path.basename(process.argv[0]),
|
||||
daemon: false,
|
||||
host: "localhost",
|
||||
port: "9556"
|
||||
}
|
||||
});
|
||||
const argv = yargs()
|
||||
.scriptName(applicationName)
|
||||
.usage("$0 [args]")
|
||||
.help()
|
||||
.alias("help", "h")
|
||||
.version(`v${applicationVersion}`)
|
||||
.alias("version", "v")
|
||||
.option("daemon", {
|
||||
alias: "d",
|
||||
describe: `Launch in daemon mode. This starts a WebSocket server that \
|
||||
the extension can be configured to connect to under bridge options.`,
|
||||
type: "boolean"
|
||||
})
|
||||
.option("host", {
|
||||
alias: "n",
|
||||
describe: `Host for daemon WebSocket server. This must match the host \
|
||||
set in the extension options.`,
|
||||
default: "localhost"
|
||||
})
|
||||
.option("port", {
|
||||
alias: "p",
|
||||
describe: `Port number for daemon WebSocket server. This must match \
|
||||
the port set in the extension options.`,
|
||||
default: 9556
|
||||
})
|
||||
.option("password", {
|
||||
alias: "P",
|
||||
describe: `Set an optional password for the daemon WebSocket server. \
|
||||
This must match the password set in the extension options.
|
||||
WARNING: This password is intended only as a basic access control measure and \
|
||||
is transmitted in plain text even over remote connections!`,
|
||||
type: "string"
|
||||
})
|
||||
.check(argv => {
|
||||
if (argv.port < 1025 || argv.port > 65535) {
|
||||
throw new Error("Invalid port specified!");
|
||||
}
|
||||
|
||||
if (argv.version) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`v${__applicationVersion}`);
|
||||
} else if (argv.help) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(
|
||||
`Usage: ${argv.__name} [options]
|
||||
|
||||
Options:
|
||||
-h, --help Print usage info
|
||||
-v, --version Print version info
|
||||
-d, --daemon Launch in daemon mode. This starts a WebSocket server that
|
||||
the extension can be configured to connect to under bridge
|
||||
options.
|
||||
-n, --host Host for daemon WebSocket server. This must match the host
|
||||
set in the extension options.
|
||||
-p, --port Port number for daemon WebSocket server. This must match the
|
||||
port set in the extension options.
|
||||
-P, --password Set an optional password for the daemon WebSocket server.
|
||||
This must match the password set in the extension options.
|
||||
WARNING: This password is intended only as a basic access
|
||||
control measure and is transmitted in plain text even over
|
||||
remote connections!
|
||||
`
|
||||
);
|
||||
} else if (argv.daemon) {
|
||||
const port = parseInt(argv.port);
|
||||
if (!port || port < 1025 || port > 65535) {
|
||||
console.error("Invalid port specified!");
|
||||
process.exit(1);
|
||||
}
|
||||
return true;
|
||||
})
|
||||
.parseSync(process.argv);
|
||||
|
||||
if (argv.daemon) {
|
||||
import("./daemon").then(daemon => {
|
||||
daemon.init({
|
||||
host: argv.host,
|
||||
port,
|
||||
port: argv.port,
|
||||
password: argv.password
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user