support quoted parameters in terminal commands
Massimo Melina committed
Feb 28, 2026 at 15:59 UTC
8f85697e3e4dda644333851ca935cd6a44f17cf9
1 file changed
+4
-2
src/commands.ts
+4
-2
@@ -71,8 +71,10 @@ if (!argv.updating && !showHelp) {
71
}
72
73
async function parseCommandLine(line: string) {
74
- if (!line) return
75
- let [name, ...params] = line.trim().split(/ +/)
74
+ const tokens = Array.from(line.trim().matchAll(/"((?:\\.|[^"\\])*)"|'((?:\\.|[^'\\])*)'|((?:\\.|[^\s"'\\])+)/g)).map(m =>
75
+ (m[1] ?? m[2] ?? m[3] ?? '').replace(/\\([\\ "'"])/g, '$1')) // unescape
76
+ if (!tokens.length) return
77
+ let [name, ...params] = tokens
78
name = aliases[name!] || name
79
let cmd = (commands as any)[name!]
80
if (cmd?.alias)