Duck util-dir module.

This commit is contained in:
Dominik Pantůček 2023-07-07 14:33:35 +02:00
parent 1eced966bf
commit 1b18c99d3c
4 changed files with 24 additions and 5 deletions

View file

@ -596,3 +596,16 @@ Reimplementation of old list-based symbol dictionary using new BST backend.
(import util-bst-lset)
Reimplementation of old lset using new BST backend.
## util-dir [module]
(import util-dir)
Directory handling which didn't fit elsewhere.
### ensure-directory [procedure]
(ensure-directory dir)
Makes sure given path exists and it is a directory. Throws an error
if it exists and it is not a directory.

View file

@ -65,14 +65,14 @@ GENDOC-SOURCES=gendoc.scm duck-extract.import.scm \
util-proc.import.scm util-format.import.scm \
util-tag.import.scm util-string.import.scm \
util-bst.import.scm util-bst-bdict.import.scm \
util-bst-ldict.import.scm
util-bst-ldict.import.scm util-dir.import.scm
GENDOC-OBJS=gendoc.o duck-extract.o util-time.o util-csv.o util-io.o \
progress.o testing.o util-proc.o util-git.o util-io.o \
util-stdout.o util-parser.o util-list.o util-proc.o \
util-format.o racket-kwargs.o util-bst-ldict.o util-tag.o \
duck.o util-string.o util-bst.o util-bst-bdict.o \
util-bst-ldict.o
util-bst-ldict.o util-dir.o
.PHONY: imports
imports: $(HACKERBASE-DEPS)
@ -480,7 +480,7 @@ EXPORT-WEB-STATIC-SOURCES=export-web-static.scm brmember.import.scm \
export-web-static.o: export-web-static.import.scm
export-web-static.import.scm: $(EXPORT-WEB-STATIC-SOURCES)
UTIL-DIR-SOURCES=util-dir.scm
UTIL-DIR-SOURCES=util-dir.scm duck.import.scm
util-dir.o: util-dir.import.scm
util-dir.import.scm: $(UTIL-DIR-SOURCES)

View file

@ -36,4 +36,5 @@
util-bst-bdict
util-bst-ldict
util-bst-lset
util-dir
)

View file

@ -25,8 +25,11 @@
(declare (unit util-dir))
(module
(import duck)
(module*
util-dir
#:doc ("Directory handling which didn't fit elsewhere.")
(
ensure-directory
)
@ -36,7 +39,9 @@
(chicken file)
(chicken file posix))
(define (ensure-directory dir)
(define/doc (ensure-directory dir)
("Makes sure given path exists and it is a directory. Throws an error
if it exists and it is not a directory.")
(when (and (file-exists? dir)
(regular-file? dir))
(error 'gen-web-static "Directory is a file:" dir))