fix(pm2): escape + in completion regex for BSD awk

The `_pm2_id_names` completion passed `+--- ` as the regex argument to
awk's sub(). An unescaped leading `+` is an illegal primary in BSD awk
(macOS /usr/bin/awk), breaking `pm2 <cmd> <TAB>` completion. GNU awk
tolerates it, so the bug only showed on macOS/BSD. Escape it to `\+`.
This commit is contained in:
Enzo Degraeve 2026-07-27 09:32:46 +02:00
commit 7f079fe654
No known key found for this signature in database

View file

@ -314,7 +314,7 @@ _pm2_subcommands() {
(( $+functions[_pm2_id_names] )) || (( $+functions[_pm2_id_names] )) ||
_pm2_id_names() { _pm2_id_names() {
local app_list=$(pm2 list -m) local app_list=$(pm2 list -m)
local -a names=(${(@f)"$(echo $app_list | awk '/^\+---/{sub("+--- ", ""); print}')"}) local -a names=(${(@f)"$(echo $app_list | awk '/^\+---/{sub("\\+--- ", ""); print}')"})
local -a ids=(${(@f)"$(echo $app_list | awk '/^pm2 id/{sub("pm2 id :", ""); print}')"}) local -a ids=(${(@f)"$(echo $app_list | awk '/^pm2 id/{sub("pm2 id :", ""); print}')"})
if (( ${#ids} > 0 )); then if (( ${#ids} > 0 )); then