On 2021-08-31 12:53, zimoun wrote: > Hi, > > 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. > > 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