Index: configf.scm ================================================================== --- configf.scm +++ configf.scm @@ -38,10 +38,11 @@ (let ((inp (open-input-file path)) (res (if (null? ht)(make-hash-table)(car ht))) (include-rx (regexp "^\\[include\\s+(.*)\\]\\s*$")) (section-rx (regexp "^\\[(.*)\\]\\s*$")) (blank-l-rx (regexp "^\\s*$")) + (key-sys-pr (regexp "^(\\S+)\\s+\\[system\\s+(\\S+.*)\\]\\s*$")) (key-val-pr (regexp "^(\\S+)\\s+(.*)$")) (comment-rx (regexp "^\\s*#.*"))) (let loop ((inl (read-line inp)) (curr-section-name "default")) (if (eof-object? inl) res @@ -51,10 +52,19 @@ (blank-l-rx _ (loop (read-line inp) curr-section-name)) (include-rx ( x include-file ) (begin (read-config include-file res) (loop (read-line inp) curr-section-name))) (section-rx ( x section-name ) (loop (read-line inp) section-name)) + (key-sys-pr ( x key cmd ) (let ((alist (hash-table-ref/default res curr-section-name '())) + (val (let ((res (car (cmd-run->list cmd)))) + (if (null? res) + "" + (string-intersperse res " "))))) + (hash-table-set! res curr-section-name + (config:assoc-safe-add alist key val)) + ;; (append alist (list (list key val)))) + (loop (read-line inp) curr-section-name))) (key-val-pr ( x key val ) (let ((alist (hash-table-ref/default res curr-section-name '()))) (hash-table-set! res curr-section-name (config:assoc-safe-add alist key val)) ;; (append alist (list (list key val)))) (loop (read-line inp) curr-section-name))) Index: tests/tests/sqlitespeed/testconfig ================================================================== --- tests/tests/sqlitespeed/testconfig +++ tests/tests/sqlitespeed/testconfig @@ -3,6 +3,9 @@ [requirements] waiton runfirst [items] -MANYITEMS a b c d e f g h i j k l m +MANYITEMS [system ls] +# a b c d e f g h i j k l m +# LSJUNK [system ls] +