codecov-circleci-orb icon indicating copy to clipboard operation
codecov-circleci-orb copied to clipboard

Handle dashes in flag names

Open mblayman opened this issue 1 year ago • 1 comments

This change adds a guard to a flag to ensure that the eval will produce a value. Without this change, a flag like my-flag will go through the eval as $my-flag. Since bash doesn't permit dashes in variable names, the resulting value will be -flag. Because this is a non-zero length, the first iteration through the for loop on ${e} will set in FLAGS, then break out. This leads to the improper result of FLAGS having -flag instead of the desired value of my-flag.

By testing that flag will produce a value before trying eval, we can be sure that the first loop iteration will proceed and allow the processing of the second iteration on ${flag} (which will correctly capture my-flag in our example).

${!flag+x} is used for indirect variable expansion. If flag contains the name of a variable, ${!flag} will expand to the value of that variable. The +x part ensures that the expression evaluates to true if the variable exists, even if it's empty.

This fixes #175.

mblayman avatar Feb 21 '24 07:02 mblayman

Could we get an update on this situation? It's important for us as we can't move forward with deprecating the bash uploader until this issue is resolved. Thanks!

rairulyle avatar May 02 '24 14:05 rairulyle