summaryrefslogtreecommitdiff
path: root/module/scripts/list.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-07-23 17:50:37 +0200
committerAndy Wingo <wingo@pobox.com>2011-07-23 17:50:41 +0200
commita1a2ed534278b968767727485f84e5957c039c23 (patch)
treebd66c43e177c2e9442cb9e20d9f7d322a6310b82 /module/scripts/list.scm
parentd322dc92ec8170320c68abc024eb683a0bf8ab00 (diff)
downloadguile-a1a2ed534278b968767727485f84e5957c039c23.tar.gz
more work on "guild list"
* module/scripts/: Add %summary entries, and in many cases, %include-in-guild-list entries to inhibit a script from appearing in "guild list". Update list.scm to respect this new variable.
Diffstat (limited to 'module/scripts/list.scm')
-rw-r--r--module/scripts/list.scm29
1 files changed, 19 insertions, 10 deletions
diff --git a/module/scripts/list.scm b/module/scripts/list.scm
index 6ffc01629..55dbef264 100644
--- a/module/scripts/list.scm
+++ b/module/scripts/list.scm
@@ -30,6 +30,9 @@
#:use-module ((srfi srfi-1) #:select (fold append-map))
#:export (list-scripts))
+(define %include-in-guild-list #f)
+(define %summary "List available guild commands.")
+
(define (directory-files dir)
(if (and (file-exists? dir) (file-is-directory? dir))
@@ -90,16 +93,22 @@ Usage: guild COMMAND [ARGS]
Commands:
")
- (for-each
- (lambda (name)
- (let* ((modname `(scripts ,(string->symbol name)))
- (mod (resolve-module modname #:ensure #f))
- (summary (and mod (and=> (module-variable mod '%summary)
- variable-ref))))
- (if summary
- (format #t " ~A ~32t~a\n" name summary)
- (format #t " ~A\n" name))))
- (find-submodules '(scripts)))
+ (let ((all? (or (equal? args '("--all"))
+ (equal? args '("-a")))))
+ (for-each
+ (lambda (name)
+ (let* ((modname `(scripts ,(string->symbol name)))
+ (mod (resolve-module modname #:ensure #f))
+ (summary (and mod (and=> (module-variable mod '%summary)
+ variable-ref))))
+ (if (and mod
+ (or all?
+ (let ((v (module-variable mod '%include-in-guild-list)))
+ (if v (variable-ref v) #t))))
+ (if summary
+ (format #t " ~A ~23t~a\n" name summary)
+ (format #t " ~A\n" name)))))
+ (find-submodules '(scripts))))
(display "\