From d44dc759fc1bea63efd9e265655e73549d114268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Tue, 14 Mar 2023 10:57:27 +0100 Subject: [PATCH] Finish integrated command-line help system. --- brmsaptool.scm | 5 ++++- command-line.scm | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/brmsaptool.scm b/brmsaptool.scm index 4ceed09..aeab131 100644 --- a/brmsaptool.scm +++ b/brmsaptool.scm @@ -46,7 +46,10 @@ (command-line print-help - (-h "This help" () (print "help") (print-help) (print "done") (exit 0)) + (-h "This help" () + (print "Command-line options:") + (print-help) + (exit 0)) (-a "One-argument" (x) (print "Argument x " x)) (-b "Two arguments" (x y) (print "Arguments " x y)) (-c "Argument lambda" (lambda (x) (print "Lambda x " x)))) diff --git a/command-line.scm b/command-line.scm index d758e0c..7b660be 100644 --- a/command-line.scm +++ b/command-line.scm @@ -100,10 +100,18 @@ descrs)))) (let loop ((descrs descrs)) (when (not (null? descrs)) - (let ((desc (car descrs))) - (print (car desc) - (cadr desc) - (caddr desc)) + (let* ((desc (car descrs)) + (opt (car desc)) + (args (cadr desc)) + (help (caddr desc))) + (print " " + opt + (make-string (- owidth (string-length opt)) #\space) + " " + args + (make-string (- awidth (string-length args)) #\space) + " " + help) (loop (cdr descrs))))))) ;; Syntax for expanding various types of options.