[PATCH v2 06/10] rtc: add rtc command

Rasmus Villemoes rasmus.villemoes at prevas.dk
Tue Jun 2 16:36:18 CEST 2020


On 02/06/2020 15.22, Simon Glass wrote:
> Hi Rasmus,
> 
> On Tue, 2 Jun 2020 at 03:13, Rasmus Villemoes
> <rasmus.villemoes at prevas.dk> wrote:
>>
>> On 31/05/2020 16.07, Simon Glass wrote:
>>> Hi Rasmus,
>>>
>>> On Tue, 19 May 2020 at 16:01, Rasmus Villemoes
>>> <rasmus.villemoes at prevas.dk> wrote:
>>>>
> 
> [..]
> 
>>>> +int do_rtc(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>>>> +{
>>>> +       static int curr_rtc = 0;
>>>> +       struct udevice *dev;
>>>> +       int ret, idx;
>>>> +
>>>> +       if (argc < 2)
>>>> +               return CMD_RET_USAGE;
>>>> +
>>>> +       argc--;
>>>> +       argv++;
>>>> +
>>>> +       if (!strcmp(argv[0], "list")) {
>>>
>>> It is comment in U-Boot to just check the letters that are needed. So
>>> here you could do (*argv[0] == 'l')
>>
>> Yes, and I consider that an anti-pattern. It makes it impossible to
>> later introduce another (sub)command which starts with a
>> previously-unique prefix. Now, if that "just type a unique prefix"
>> wasn't official, so scripts were always supposed to use the full names,
>> it wouldn't be that big a problem (scripts written for later versions of
>> U-Boot, or U-Boots configured with more (sub)commands, could still fail
>> silently if used on an earlier U-Boot or one with fewer (sub)commands
>> instead of producing a "usage" error message), but
>> https://www.denx.de/wiki/view/DULG/UBootCommandLineInterface explicitly
>> mentions that as a feature (and says h can be used for help, which it
>> can't when the hash command is built in, perfectly exemplifying what I'm
>> talking about).
> 
> Hah funny. Using an abbreviation is only possible if no other command
> starts with the same leters.
> 
> It is certainly very risky to use abbreviations in scripts. I would
> not recommend it. Abbreviations are for interactive use. If you have
> auto-completion on you can use tab.

Exactly, so the ability to use the abbreviated form doesn't really buy
anything - it's risky in scripts, and interactively, it merely saves a
tab keystroke (and that's all lost in the cognitive overhead of having
to remember just what abbrev is enough).

> But here we are talking about a sub-command, which is a bit more
> controlled, in that it doesn't depend on what other commands the user
> enables.

True, but the same point applies; if I allowed "rtc w", one couldn't
easily later add an "rtc wobble" subcommand (ok, my imagination is
lacking, but you get the idea).

> Anyway, it's up to you what you want to do here.

In that case I'll keep checking for the full name of subcommands.

Thanks,
Rasmus


More information about the U-Boot mailing list