Markus Armbruster <[email protected]> writes:

> Peter Maydell <[email protected]> writes:
>
>> On Fri, 7 Nov 2025 at 12:05, Markus Armbruster <[email protected]> wrote:
>>>
>>> Peter Maydell <[email protected]> writes:
>>>
>>> > If clean-includes is creating a git commit for its changes,
>>> > currently it says only "created with scripts/clean-includes".
>>> > Add the command line arguments the user passed us, as useful
>>> > extra information.
>>> >
>>> > Signed-off-by: Peter Maydell <[email protected]>
>>> > ---
>>> >  scripts/clean-includes | 6 +++++-
>>> >  1 file changed, 5 insertions(+), 1 deletion(-)
>>> >
>>> > diff --git a/scripts/clean-includes b/scripts/clean-includes
>>> > index a45421d2ff7..694e12f062c 100755
>>> > --- a/scripts/clean-includes
>>> > +++ b/scripts/clean-includes
>>> > @@ -42,6 +42,9 @@
>>> >  GIT=no
>>> >  DUPHEAD=no
>>> >
>>> > +# Save the original arguments in case we want to put them in
>>> > +# a git commit message
>>> > +ORIGARGS="$*"
>>> >
>>> >  while true
>>> >  do
>>> > @@ -198,7 +201,8 @@ if [ "$GIT" = "yes" ]; then
>>> >      git commit --signoff -F - <<EOF
>>> >  $GITSUBJ: Clean up includes
>>> >
>>> > -This commit was created with scripts/clean-includes.
>>> > +This commit was created with scripts/clean-includes:
>>> > + ./scripts/clean-includes $ORIGARGS
>>>
>>> Consider
>>>
>>>     $ ./scripts/clean-includes --git 'a b c' a b c
>>
>> Yes. Do you have a way to deal with that that isn't
>> more complex than justified by what we're doing here?
>>
>> thanks
>> -- PMM
>
> This doesn't feel too onerous:
>
>     args=
>     for i
>     do args+=" '""$i""'"
>     done
>
> However, += is bash.

Have a look at configure:

    printf "exec" >>config.status
    for i in "$0" "$@"; do
      test "$i" = --skip-meson || printf " %s" "$(quote_sh "$i")" 
>>config.status
    done

with shell function

    quote_sh() {
        printf "%s" "$1" | sed "s,','\\\\'',g; s,.*,'&',"
    }


Reply via email to