diff --git a/src/Makefile b/src/Makefile index f3960b7..932faff 100644 --- a/src/Makefile +++ b/src/Makefile @@ -44,7 +44,7 @@ BBSTOOL-DEPS=bbstool.scm testing.import.scm listing.import.scm \ web-static.import.scm environment.import.scm \ mailman.import.scm util-set-list.import.scm \ util-time.import.scm util-tag.import.scm util-io.import.scm \ - util-string.import.scm + util-string.import.scm util-io.import.scm BBSTOOL-OBJS=bbstool.o testing.o listing.o month.o period.o ansi.o \ dictionary.o command-line.o members-base.o utils.o primes.o \ @@ -52,7 +52,7 @@ BBSTOOL-OBJS=bbstool.o testing.o listing.o month.o period.o ansi.o \ members-print.o member-fees.o members-dir.o util-csv.o \ bank-account.o bank-fio.o members-payments.o member-parser.o \ web-static.o environment.o mailman.o util-set-list.o \ - util-time.o util-tag.o util-io.o util-string.o + util-time.o util-tag.o util-io.o util-string.o util-io.o .PHONY: imports imports: $(BBSTOOL-DEPS) @@ -227,7 +227,8 @@ members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES) WEB-STATIC-SOURCES=web-static.scm member-record.import.scm \ utils.import.scm configuration.import.scm \ - members-payments.import.scm members-base.import.scm + members-payments.import.scm members-base.import.scm \ + util-io.import.scm web-static.o: web-static.import.scm web-static.import.scm: $(WEB-STATIC-SOURCES) @@ -238,7 +239,7 @@ environment.o: environment.import.scm environment.import.scm: $(ENVIRONMENT-SOURCES) MAILMAN-SOURCES=mailman.scm utils.import.scm progress.import.scm \ - util-set-list.import.scm + util-set-list.import.scm util-io.import.scm mailman.o: mailman.import.scm mailman.import.scm: $(MAILMAN-SOURCES) @@ -254,7 +255,7 @@ UTIL-TIME-SOURCES=util-time.scm util-time.o: util-time.import.scm util-time.import.scm: $(UTIL-TIME-SOURCES) -UTIL-TAG-SOURCES=util-tag.scm +UTIL-TAG-SOURCES=util-tag.scm testing.import.scm util-tag.o: util-tag.import.scm util-tag.import.scm: $(UTIL-TAG-SOURCES) @@ -264,7 +265,12 @@ UTIL-IO-SOURCES=util-io.scm util-io.o: util-io.import.scm util-io.import.scm: $(UTIL-IO-SOURCES) -UTIL-STRING-SOURCES=util-string.scm +UTIL-STRING-SOURCES=util-string.scm testing.import.scm util-string.o: util-string.import.scm util-string.import.scm: $(UTIL-STRING-SOURCES) + +UTIL-IO-SOURCES=util-io.scm + +util-io.o: util-io.import.scm +util-io.import.scm: $(UTIL-IO-SOURCES) diff --git a/src/mailman.scm b/src/mailman.scm index af6af35..7fef9f1 100644 --- a/src/mailman.scm +++ b/src/mailman.scm @@ -61,7 +61,8 @@ (chicken format) utils progress - util-set-list) + util-set-list + util-io) ;; Where does the mailman binaries reside (define *mailman-bin* (make-parameter "/usr/lib/mailman/bin")) diff --git a/src/util-io.scm b/src/util-io.scm index d19bf99..5a74843 100644 --- a/src/util-io.scm +++ b/src/util-io.scm @@ -29,10 +29,13 @@ util-io ( read-lines/no-bom + get-process-output-lines ) (import scheme - (chicken io)) + (chicken base) + (chicken io) + (chicken process)) ;; If given string begins with UTF-8 BOM, it is removed. (define (remove-optional-bom str) @@ -52,4 +55,13 @@ (cons (remove-optional-bom (car lines)) (cdr lines))))) + ;; Very simple shell command wrapper that returns lines produced by + ;; given command. Dangerous - performs no argument escaping! + (define (get-process-output-lines cmd) + (let-values (((stdout stdin pid stderr) (process* cmd))) + (close-output-port stdin) + (let ((result (read-lines stdout))) + (let-values (((a b c) (process-wait pid))) + result)))) + ) diff --git a/src/utils.scm b/src/utils.scm index 07074b8..7db6eab 100644 --- a/src/utils.scm +++ b/src/utils.scm @@ -29,7 +29,6 @@ utils ( filter - get-process-output-lines utils-tests! ) @@ -51,15 +50,6 @@ (loop (cdr lst) res))))) - ;; Very simple shell command wrapper that returns lines produced by - ;; given command. Dangerous - performs no argument escaping! - (define (get-process-output-lines cmd) - (let-values (((stdout stdin pid stderr) (process* cmd))) - (close-output-port stdin) - (let ((result (read-lines stdout))) - (let-values (((a b c) (process-wait pid))) - result)))) - ;; Performs utils module self-tests. (define (utils-tests!) (run-tests diff --git a/src/web-static.scm b/src/web-static.scm index e4974cd..86bfc5f 100644 --- a/src/web-static.scm +++ b/src/web-static.scm @@ -44,7 +44,8 @@ utils configuration members-payments - members-base) + members-base + util-io) ;; Generate all the files in specified (default current) directory. (define (gen-web-static-member mr . dirs)