Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error parsing command arguments #200

Open
sestrella opened this issue Oct 24, 2024 · 1 comment
Open

Error parsing command arguments #200

sestrella opened this issue Oct 24, 2024 · 1 comment
Labels

Comments

@sestrella
Copy link
Member

I got the following error passing a "command" as an argument to yesod devel:

> dotenv -o -- yesod devel --success-hook "echo foo"
Invalid argument `foo'

Usage: yesod [-d|--dev] [-v|--verbose] COMMAND

If I call it directly, it works as expected:

> yesod devel --success-hook "echo foo"

My theory is that this is not related to yesod devel per se, but rather to how dotenv -- <command> <args> works, as it seems that is not properly escaping the arguments after --

@aloussase
Copy link
Contributor

I can reproduce the bug with the following example:

image

(don't mind the dot at the end)

And adding some debug logging I see:

image

Which shows that arguments after -- don't seem to keep the quotes. The parser for the arguments looks like this:

many (argument str (metavar "ARG"))

Which seems correct and makes me think this might be a bug in optparse-applicative?

This is the result of getArgs:

image

I think maybe the individual elements of the list are not being quoted, which causes the parser to interpret "echo hi" as 2 separate arguments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants