-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathconfigctl.ts
54 lines (48 loc) · 1.17 KB
/
configctl.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import * as cli from "./cli.ts";
import * as mod from "./mod.ts";
const docoptSpec = `
Visual Studio Settings Configuration Controller.
Usage:
configctl inspect deno settings
configctl inspect deno extensions [--recommended]
configctl -h | --help
configctl --version
Options:
-h --help Show this screen
--version Show version
`;
export class CliCmdHandlerContext extends cli.TypicalCommandHandlerContext {
}
export async function inspectCliHandler(
ctx: CliCmdHandlerContext,
): Promise<true | void> {
const {
inspect,
deno,
settings,
extensions,
"--recommended": recommended,
} = ctx.cliOptions;
if (inspect && deno) {
if (settings) {
console.dir(mod.denoSettings);
}
if (extensions) {
if (recommended) {
console.dir(mod.extnRecommendations(mod.denoExtensions));
} else {
console.dir(mod.denoExtensions);
}
}
return true;
}
}
if (import.meta.main) {
cli.CLI<CliCmdHandlerContext>(
docoptSpec,
[inspectCliHandler],
(options: cli.docopt.DocOptions): CliCmdHandlerContext => {
return new CliCmdHandlerContext(import.meta.url, options);
},
);
}