refactor: move help out

main
spacemeowx2 2022-10-22 21:00:45 +08:00
parent ec1e56e945
commit 1a08202ae2
2 changed files with 19 additions and 17 deletions

18
s3si.ts
View File

@ -16,8 +16,24 @@ const parseArgs = (args: string[]) => {
return parsed; return parsed;
}; };
const opts = parseArgs(Deno.args);
if (opts.help) {
console.log(
`Usage: deno run -A ${Deno.mainModule} [options]
Options:
--profile-path <path>, -p Path to config file (default: ./profile.json)
--exporter <exporter>, -e Exporter list to use (default: stat.ink)
Multiple exporters can be separated by commas
(e.g. "stat.ink,file")
--no-progress, -n Disable progress bar
--help Show this help message and exit`,
);
Deno.exit(0);
}
const app = new App({ const app = new App({
...DEFAULT_OPTS, ...DEFAULT_OPTS,
...parseArgs(Deno.args), ...opts,
}); });
await showError(app.run()); await showError(app.run());

View File

@ -23,14 +23,14 @@ export type Opts = {
profilePath: string; profilePath: string;
exporter: string; exporter: string;
noProgress: boolean; noProgress: boolean;
help?: boolean; monitor: boolean;
}; };
export const DEFAULT_OPTS: Opts = { export const DEFAULT_OPTS: Opts = {
profilePath: "./profile.json", profilePath: "./profile.json",
exporter: "stat.ink", exporter: "stat.ink",
noProgress: false, noProgress: false,
help: false, monitor: false,
}; };
/** /**
@ -158,20 +158,6 @@ export class App {
state: State = DEFAULT_STATE; state: State = DEFAULT_STATE;
constructor(public opts: Opts) { constructor(public opts: Opts) {
if (this.opts.help) {
console.log(
`Usage: deno run -A ${Deno.mainModule} [options]
Options:
--profile-path <path>, -p Path to config file (default: ./profile.json)
--exporter <exporter>, -e Exporter list to use (default: stat.ink)
Multiple exporters can be separated by commas
(e.g. "stat.ink,file")
--no-progress, -n Disable progress bar
--help Show this help message and exit`,
);
Deno.exit(0);
}
} }
async writeState(newState: State) { async writeState(newState: State) {
this.state = newState; this.state = newState;