On 2021-08-31 15:09, zimoun wrote: > Hi, > > On Tue, 31 Aug 2021 at 14:12, Andrew Tropin wrote: >> On 2021-08-31 12:53, zimoun wrote: >> > On Tue, 31 Aug 2021 at 12:40, Andrew Tropin 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 Yep, corret (: