diff options
author | Andy Wingo <wingo@pobox.com> | 2011-07-23 17:50:37 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-07-23 17:50:41 +0200 |
commit | a1a2ed534278b968767727485f84e5957c039c23 (patch) | |
tree | bd66c43e177c2e9442cb9e20d9f7d322a6310b82 /module/scripts/list.scm | |
parent | d322dc92ec8170320c68abc024eb683a0bf8ab00 (diff) | |
download | guile-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.scm | 29 |
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 "\ |