|
1 | | -import { parseArgs } from "jsr:@std/cli/parse-args"; |
2 | | -import { loadUserSettings, saveUserSettings } from "../config/settings.ts"; |
| 1 | +import {parseArgs} from "jsr:@std/cli/parse-args" |
| 2 | +import {loadUserSettings, saveUserSettings} from "../config/settings.ts" |
| 3 | +import {parseFlagForHelp} from "../utils/functions.ts" |
3 | 4 |
|
4 | 5 | export async function handleSettings(args: string[]): Promise<void> { |
5 | | - const flags = parseArgs(args, { |
| 6 | + const settingsFlags = { |
6 | 7 | string: ["set-name", "add-command", "remove-command"], |
7 | 8 | boolean: ["list"], |
8 | | - }); |
| 9 | + } |
| 10 | + const flags = parseArgs(args, settingsFlags) |
9 | 11 |
|
10 | | - const settings = await loadUserSettings(); |
| 12 | + if (flags._[1] === "help") { |
| 13 | + console.log(parseFlagForHelp(settingsFlags)) |
| 14 | + return |
| 15 | + } |
| 16 | + const settings = await loadUserSettings() |
11 | 17 |
|
12 | 18 | if (flags["set-name"]) { |
13 | | - settings.userName = flags["set-name"]; |
| 19 | + settings.userName = flags["set-name"] |
14 | 20 | } |
15 | 21 | else if (flags["add-command"]) { |
16 | | - const [name, description, helpCmd, ...helpFlags] = flags["add-command"].split(","); |
| 22 | + const addCommandValue = flags["add-command"] as string; |
| 23 | + const [name, description, helpCmd, ...helpFlags] = addCommandValue.split(",") |
17 | 24 | settings.customCommands.push({ |
18 | 25 | name, |
19 | 26 | description, |
20 | 27 | helpCommand: helpCmd, |
21 | 28 | helpFlags: helpFlags |
22 | | - }); |
| 29 | + }) |
23 | 30 | } |
24 | 31 | else if (flags["remove-command"]) { |
25 | | - const index = settings.customCommands.findIndex(cmd => cmd.name === flags["remove-command"]); |
26 | | - if (index >= 0) settings.customCommands.splice(index, 1); |
| 32 | + const index = settings.customCommands.findIndex(cmd => cmd.name === flags["remove-command"]) |
| 33 | + if (index >= 0) settings.customCommands.splice(index, 1) |
27 | 34 | } |
28 | 35 | else if (flags.list) { |
29 | | - console.log(JSON.stringify(settings, null, 2)); |
30 | | - return; |
| 36 | + console.log(JSON.stringify(settings, null, 2)) |
| 37 | + return |
31 | 38 | } |
32 | 39 |
|
33 | | - await saveUserSettings(settings); |
| 40 | + await saveUserSettings(settings) |
34 | 41 | } |
0 commit comments