Hi! sirgazil <sirga...@zoho.com> writes:
> […] > > I'm trying out guile-config to declare the CLI of the program using a > <configuration> record > (https://gitlab.com/sirgazil/guile-lab/blob/master/scripts/cli/sprinklers#L96) You can actually make use of config's inheritance here, because oscillate is shared by all subcommands. You can specify oscillate in the top-level command and then use the (wanted …) property of each subcommand <configuration> object to say you would like to inherit oscillate from its parent. I think this one is documented correctly in the manual! :-) > […] > > So, for example, using the <codex> record, how would I map the following > command > > $ sprinklers start A5 > > to a Guile procedure like > > (define (sprinkler-start id) ...) I think this is one place for the documentation of config let you down! The procedure you want to use here is (full-command <codex>). This will give you a list of string elements, each being a "breadcrumb" down the trail of subcommands. This is how I tend to use it: (match (full-command options) ; options is a <codex> ((_ "start") (sprinkler-start (option-ref options '(id)))) ; id is arg, not key …) Hth, Alex