Move get-process-output-lines to util-io.

This commit is contained in:
Dominik Pantůček 2023-04-08 20:56:22 +02:00
parent 4ac7fdbc6d
commit 64cd360c0d
5 changed files with 29 additions and 19 deletions

View file

@ -44,7 +44,7 @@ BBSTOOL-DEPS=bbstool.scm testing.import.scm listing.import.scm \
web-static.import.scm environment.import.scm \ web-static.import.scm environment.import.scm \
mailman.import.scm util-set-list.import.scm \ mailman.import.scm util-set-list.import.scm \
util-time.import.scm util-tag.import.scm util-io.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 \ 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 \ 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 \ members-print.o member-fees.o members-dir.o util-csv.o \
bank-account.o bank-fio.o members-payments.o member-parser.o \ bank-account.o bank-fio.o members-payments.o member-parser.o \
web-static.o environment.o mailman.o util-set-list.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 .PHONY: imports
imports: $(BBSTOOL-DEPS) imports: $(BBSTOOL-DEPS)
@ -227,7 +227,8 @@ members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES)
WEB-STATIC-SOURCES=web-static.scm member-record.import.scm \ WEB-STATIC-SOURCES=web-static.scm member-record.import.scm \
utils.import.scm configuration.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.o: web-static.import.scm
web-static.import.scm: $(WEB-STATIC-SOURCES) web-static.import.scm: $(WEB-STATIC-SOURCES)
@ -238,7 +239,7 @@ environment.o: environment.import.scm
environment.import.scm: $(ENVIRONMENT-SOURCES) environment.import.scm: $(ENVIRONMENT-SOURCES)
MAILMAN-SOURCES=mailman.scm utils.import.scm progress.import.scm \ 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.o: mailman.import.scm
mailman.import.scm: $(MAILMAN-SOURCES) mailman.import.scm: $(MAILMAN-SOURCES)
@ -254,7 +255,7 @@ UTIL-TIME-SOURCES=util-time.scm
util-time.o: util-time.import.scm util-time.o: util-time.import.scm
util-time.import.scm: $(UTIL-TIME-SOURCES) 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.o: util-tag.import.scm
util-tag.import.scm: $(UTIL-TAG-SOURCES) 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.o: util-io.import.scm
util-io.import.scm: $(UTIL-IO-SOURCES) 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.o: util-string.import.scm
util-string.import.scm: $(UTIL-STRING-SOURCES) 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)

View file

@ -61,7 +61,8 @@
(chicken format) (chicken format)
utils utils
progress progress
util-set-list) util-set-list
util-io)
;; Where does the mailman binaries reside ;; Where does the mailman binaries reside
(define *mailman-bin* (make-parameter "/usr/lib/mailman/bin")) (define *mailman-bin* (make-parameter "/usr/lib/mailman/bin"))

View file

@ -29,10 +29,13 @@
util-io util-io
( (
read-lines/no-bom read-lines/no-bom
get-process-output-lines
) )
(import scheme (import scheme
(chicken io)) (chicken base)
(chicken io)
(chicken process))
;; If given string begins with UTF-8 BOM, it is removed. ;; If given string begins with UTF-8 BOM, it is removed.
(define (remove-optional-bom str) (define (remove-optional-bom str)
@ -52,4 +55,13 @@
(cons (remove-optional-bom (car lines)) (cons (remove-optional-bom (car lines))
(cdr 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))))
) )

View file

@ -29,7 +29,6 @@
utils utils
( (
filter filter
get-process-output-lines
utils-tests! utils-tests!
) )
@ -51,15 +50,6 @@
(loop (cdr lst) (loop (cdr lst)
res))))) 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. ;; Performs utils module self-tests.
(define (utils-tests!) (define (utils-tests!)
(run-tests (run-tests

View file

@ -44,7 +44,8 @@
utils utils
configuration configuration
members-payments members-payments
members-base) members-base
util-io)
;; Generate all the files in specified (default current) directory. ;; Generate all the files in specified (default current) directory.
(define (gen-web-static-member mr . dirs) (define (gen-web-static-member mr . dirs)