Subject: bug#53404: Bash completions provided by nvme-cli producing syntax error

From: [email-masked]
Date: Fri, 21 Jan 2022 11:57:44 +0900

Hello Guix,

Installing nvme-cli into my user profile causes the following error to show at
bash login:

    bash: 'intel': syntax error: operand expected (error token is "'intel'")

Starting bash with xtrace enabled places the error at
share/bash-completion/completions/nvme:11:

    readonly _plugin_subcmds=(
    	[intel]="id-ctrl internal-log lat-stats \
    		set-bucket-thresholds lat-stats-tracking \
    ...

With a cursory glance, that looks like perfectly valid bash. Sourcing the file
directly produces a different set of errors:

$ guix shell --pure nvme-cli
bash-5.1$ source /gnu/store/z3jasjly9s8lmb7scwqbsqfxd0cj5a26-profile/share/bash-completion/completions/nvme
bash: supported-log-pages: command not found
bash: --clear-host-side-blks: command not found
bash: /gnu/store/z3jasjly9s8lmb7scwqbsqfxd0cj5a26-profile/share/bash-completion/completions/nvme: line 1387: unexpected EOF while looking for matching `"'
bash: /gnu/store/z3jasjly9s8lmb7scwqbsqfxd0cj5a26-profile/share/bash-completion/completions/nvme: line 1406: syntax error: unexpected end of file

Is anyone else seeing the original error?

Unrelated, but I also notice that the outputs contain dracut definitions. Might
be worth tightening this package up a little?

Cheers,
B. Wilson