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

From: zimoun <[email-masked]>
Date: Tue, 31 Aug 2021 15:09:47 +0200

Hi,

On Tue, 31 Aug 2021 at 14:12, Andrew Tropin <[email-masked]> wrote:
> On 2021-08-31 12:53, zimoun wrote:
> > 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.

[...]

> 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.

Your point is to hint both "guix system" and "guix home" in the same
time because they share the same pattern.  Right?

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

Yes, and from my understanding, your answer is keep consistency with
"guix system". :-)

Cheers,
simon