From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: sirgazil Newsgroups: gmane.lisp.guile.user Subject: guile-config: How do I use a ? Date: Wed, 15 Jan 2020 14:13:57 -0500 Message-ID: <16faaa06bfd.db91abab66860.6304475598181299647@zoho.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="58195"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Zoho Mail To: "Guile User" Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Wed Jan 15 20:25:15 2020 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1iroHy-000Ezh-R3 for guile-user@m.gmane-mx.org; Wed, 15 Jan 2020 20:25:14 +0100 Original-Received: from localhost ([::1]:59379 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iroHx-0008IL-2w for guile-user@m.gmane-mx.org; Wed, 15 Jan 2020 14:25:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34613) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iro7G-00017M-9Y for guile-user@gnu.org; Wed, 15 Jan 2020 14:14:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iro7E-0004Gh-QO for guile-user@gnu.org; Wed, 15 Jan 2020 14:14:10 -0500 Original-Received: from sender4-pp-o91.zoho.com ([136.143.188.91]:25159) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iro7E-0004F3-Gr for guile-user@gnu.org; Wed, 15 Jan 2020 14:14:08 -0500 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=zapps768; d=zoho.com; h=date:from:to:message-id:in-reply-to:subject:mime-version:content-type:user-agent; b=NVDLpOMxh2v296+vqeugCqkcyU1ZqdaIaVNYKBj34nc7jWOgdmFYT35fyNZVbPzDEqwgd3YnrdiY tiaZnpHfB2I68Fq1EtQ9KpUWOvRWtFixD5kIn/poR4zyxV8Mg0hc DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1579115644; s=zm2020; d=zoho.com; i=sirgazil@zoho.com; h=Date:From:To:Message-ID:In-Reply-To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=o3tEsY/ZW0TowVKteO4x8NnhkNoIk5ZIfXrfQv4a61U=; b=jUbF/ic+5jitrbVMEg+r4DEnRJMfSvFb17LBpIPo/+CZkPBcIQeN22JY0eh1NgXG Z/gXA/0zXxOHZG0kqqMYn5uuP8JeC2a4QHOrCg+EJjdHu6YrREb9Rp68ZoL12TersOD voegYsi8MxpUkQoH2DluTYoUL3XwZ9/2Rr4bLmSA= Original-Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1579115637758752.636368026825; Wed, 15 Jan 2020 11:13:57 -0800 (PST) Original-Received: from [179.15.13.185] by mail.zoho.com with HTTP;Wed, 15 Jan 2020 11:13:57 -0800 (PST) X-Priority: Medium X-Mailer: Zoho Mail X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 136.143.188.91 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:16064 Archived-At: I designed the following CLI for an example program that pretends to control irrigation sprinklers. $ sprinklers Display some information about the sprinklers in the farm. $ sprinklers start-all All sprinklers started. $ sprinklers stop-all All sprinklers stopped. $ sprinklers start A5 Sprinkler A5 started. $ sprinklers stop A5 Sprinkler A5 stopped. All subcommands accept a --oscillate flag. For example: $ sprinklers start --oscillate A5 Sprinkler A5 started in oscillation mode. I'm trying out guile-config to declare the CLI of the program using a record (https://gitlab.com/sirgazil/guile-lab/blob/master/scripts/cli/sprinklers#L96) and I have defined a "dispatcher" procedure that is supposed to run some Guile procedure depending on the command entered by the user (https://gitlab.com/sirgazil/guile-lab/blob/master/scripts/cli/sprinklers#L165). But I don't understand how to use the record for that purpose (I'm currently matching command patterns against the result of (command-line) instead to make the example program work). So, for example, using the record, how would I map the following command $ sprinklers start A5 to a Guile procedure like (define (sprinkler-start id) ...) Thanks, --- https://sirgazil.bitbucket.io/