Subject: [bug#50296] [PATCH 1/2] scripts: Add 'guix home'.

From: Andrew Tropin <[email-masked]>
Date: Tue, 31 Aug 2021 15:12:26 +0300

On 2021-08-31 12:53, zimoun wrote:

> Hi,
>
> On Tue, 31 Aug 2021 at 12:40, Andrew Tropin <[email-masked]> wrote:
>
>> +(define-command (guix-home . args)
>> +  (synopsis "build and deploy home environments")
>> +
>> +  (define (parse-sub-command arg result)
>> +    ;; Parse sub-command ARG and augment RESULT accordingly.
>> +    (if (assoc-ref result 'action)
>> +        (alist-cons 'argument arg result)
>> +        (let ((action (string->symbol arg)))
>> +          (case action
>> +            ((build
>> +              reconfigure
>> +              extension-graph shepherd-graph
>> +              list-generations describe
>> +              delete-generations roll-back
>> +              switch-generation search
>> +              import)
>> +             (alist-cons 'action action result))
>> +            (else (leave (G_ "~a: unknown action~%") action))))))
>
> For parsing the actions, I would define elsewhere the list.  Then if the
> action is unknown, you could use ’string-closest’ and so return an hint
> if there is a typo.
>
> Other said, this
>
>   guix home recnfigure
>
> would return
>
>   guix home: error: recnfigure: unknown action
>   hint: Did you mean `reconfigure'?
>
> WDYT?
>

Sounds good, the same "issue" exists for guix system subcommands, it
would be cool to have such functionality, but I would like to have those
changes to both guix system and guix home after wip-guix-home merged,
because backporting changes to rde is a little tedious.

Also, it seems related to subcommands/--arguments discussion and maybe
better to talk about it in a separate thread.

> Cheers, simon