[PATCH v2 5/7] commands: make run_command variadic

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Feb 23 03:05:10 PST 2026


On 2/23/26 12:03 PM, Sascha Hauer wrote:
> On Thu, Feb 12, 2026 at 11:02:07PM +0100, Marco Felsch wrote:
>> This prepares run_command() to receive a format string and variadic
>> arguments which can become quite handy for board code. It also ensures
>> a proper cleanup for the command string and generalizes the error
>> message printing.
>>
>> Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
>> ---
>>  common/hush.c     | 23 ++++++++++++++++++++++-
>>  common/parser.c   | 24 +++++++++++++++++++++++-
>>  include/command.h |  4 ++--
>>  3 files changed, 47 insertions(+), 4 deletions(-)
>>
>> diff --git a/common/hush.c b/common/hush.c
>> index 2e0cc4229d3575dcf045f68ef8db3e943c41eedb..b46a42cc90c863376bb819755afc83271120200f 100644
>> --- a/common/hush.c
>> +++ b/common/hush.c
>> @@ -1922,7 +1922,7 @@ static char * make_string(char ** inp)
>>  	return str;
>>  }
>>  
>> -int run_command(const char *cmd)
>> +static int __run_command(const char *cmd)
>>  {
>>  	struct p_context ctx = {};
>>  	int ret;
>> @@ -1938,6 +1938,27 @@ int run_command(const char *cmd)
>>  	return ret;
>>  }
>>  
>> +int run_command(const char *fmt, ...)
>> +{
>> +	va_list vargs;
>> +	char *cmd;
>> +	int error;
>> +
>> +	va_start(vargs, fmt);
>> +	cmd = xvasprintf(fmt, vargs);
>> +	va_end(vargs);
>> +
>> +	error = __run_command(cmd);
>> +	if (error) {
>> +		error_msg("Failed to run CMD: '%s' with %d\n", cmd, error);
>> +		free(cmd);
>> +		return error;
>> +	}
> 
> Dropped this error printing while applying. There was no error printing
> before this patch and also some commands might intentionally silently
> fail, so error printing should be done in the caller.

Good catch. gpio_get_value comes to mind where this would be rather
confusing.

Cheers,
Ahmad

> 
> Sascha
> 

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list