From 27b4e1f5bfac39323bdff089aac094b8e98b0258 Mon Sep 17 00:00:00 2001 From: Javier Sancho Date: Fri, 10 Sep 2021 18:33:06 +0200 Subject: [PATCH] Move value functions to a separated file --- click.scm | 1 + click/util.scm | 26 -------------------------- click/value.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 click/value.scm diff --git a/click.scm b/click.scm index aa80430..6a2d253 100644 --- a/click.scm +++ b/click.scm @@ -22,6 +22,7 @@ #:use-module (click constant) #:use-module (click display) #:use-module (click util) + #:use-module (click value) #:export (command)) diff --git a/click/util.scm b/click/util.scm index e83e153..8a4f771 100644 --- a/click/util.scm +++ b/click/util.scm @@ -22,9 +22,6 @@ #:use-module (ice-9 readline) #:use-module (click constant) #:export (getopt-long-option-spec - get-option-default-value - get-values - option-default-value option-property program-name %program-name)) @@ -48,26 +45,3 @@ (if property (cadr property) default))) - -(define (get-values option-spec values) - "Return an associated list with values for all the options in option-spec" - (cond ((null? option-spec) - '()) - (else - (let* ((option (car option-spec)) - (option-name (car option)) - (value (or (option-ref values option-name #f) - (get-option-default-value option)))) - (cons (cons option-name value) - (get-values (cdr option-spec) values)))))) - - -(define* (get-option-default-value option #:optional (no-prompt #f)) - "Get value for option, asking user if prompt property is set" - (let ((default (option-property option 'default))) - (if (not default) - (let ((prompt (option-property option 'prompt))) - (if prompt - (readline (format #f "~a: " prompt)) - default)) - default))) diff --git a/click/value.scm b/click/value.scm new file mode 100644 index 0000000..ec00445 --- /dev/null +++ b/click/value.scm @@ -0,0 +1,49 @@ +;;; Click --- Command Line Interface Creation Kit for GNU Guile +;;; Copyright © 2021 Javier Sancho +;;; +;;; This file is part of Click. +;;; +;;; Click is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; Click is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with Click. If not, see . + + +(define-module (click value) + #:use-module (ice-9 getopt-long) + #:use-module (ice-9 readline) + #:use-module (click util) + #:export (get-option-default-value + get-values)) + + +(define (get-values option-spec values) + "Return an associated list with values for all the options in option-spec" + (cond ((null? option-spec) + '()) + (else + (let* ((option (car option-spec)) + (option-name (car option)) + (value (or (option-ref values option-name #f) + (get-option-default-value option)))) + (cons (cons option-name value) + (get-values (cdr option-spec) values)))))) + + +(define* (get-option-default-value option #:optional (no-prompt #f)) + "Get value for option, asking user if prompt property is set" + (let ((default (option-property option 'default))) + (if (not default) + (let ((prompt (option-property option 'prompt))) + (if prompt + (readline (format #f "~a: " prompt)) + default)) + default))) -- 2.39.2