Build dokuwiki module.
This commit is contained in:
parent
000b57641d
commit
6a4817c46f
3 changed files with 35 additions and 7 deletions
12
src/Makefile
12
src/Makefile
|
@ -39,7 +39,8 @@ HACKERBASE-DEPS=hackerbase.scm cal-month.import.scm \
|
||||||
mailman.import.scm texts.import.scm tests.import.scm \
|
mailman.import.scm texts.import.scm tests.import.scm \
|
||||||
notifications.import.scm logging.import.scm \
|
notifications.import.scm logging.import.scm \
|
||||||
progress.import.scm cal-period.import.scm \
|
progress.import.scm cal-period.import.scm \
|
||||||
util-stdout.import.scm export-web-static.import.scm
|
util-stdout.import.scm export-web-static.import.scm \
|
||||||
|
dokuwiki.import.scm
|
||||||
|
|
||||||
HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
||||||
cal-period.o ansi.o util-dict-list.o command-line.o mbase.o \
|
cal-period.o ansi.o util-dict-list.o command-line.o mbase.o \
|
||||||
|
@ -55,7 +56,7 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
|
||||||
sgr-list.o sgr-block.o table-processor.o table-border.o \
|
sgr-list.o sgr-block.o table-processor.o table-border.o \
|
||||||
table-style.o sgr-state.o util-utf8.o sgr-cell.o \
|
table-style.o sgr-state.o util-utf8.o sgr-cell.o \
|
||||||
template-list-expander.o box-drawing.o util-list.o \
|
template-list-expander.o box-drawing.o util-list.o \
|
||||||
export-web-static.o util-dir.o racket-kwargs.o
|
export-web-static.o util-dir.o racket-kwargs.o dokuwiki.o
|
||||||
|
|
||||||
.PHONY: imports
|
.PHONY: imports
|
||||||
imports: $(HACKERBASE-DEPS)
|
imports: $(HACKERBASE-DEPS)
|
||||||
|
@ -482,3 +483,10 @@ UTIL-DIR-SOURCES=util-dir.scm
|
||||||
|
|
||||||
util-dir.o: util-dir.import.scm
|
util-dir.o: util-dir.import.scm
|
||||||
util-dir.import.scm: $(UTIL-DIR-SOURCES)
|
util-dir.import.scm: $(UTIL-DIR-SOURCES)
|
||||||
|
|
||||||
|
DOKUWIKI-SOURCES=dokuwiki.scm racket-kwargs.import.scm \
|
||||||
|
configuration.import.scm util-parser.import.scm \
|
||||||
|
util-csv.import.scm
|
||||||
|
|
||||||
|
dokuwiki.o: dokuwiki.import.scm
|
||||||
|
dokuwiki.import.scm: $(DOKUWIKI-SOURCES)
|
||||||
|
|
|
@ -27,25 +27,44 @@
|
||||||
(module
|
(module
|
||||||
dokuwiki
|
dokuwiki
|
||||||
(
|
(
|
||||||
|
dokuwiki-load-users
|
||||||
)
|
)
|
||||||
|
|
||||||
(import scheme
|
(import scheme
|
||||||
(chicken base)
|
(chicken base)
|
||||||
(chicken pathname)
|
(chicken pathname)
|
||||||
(chicken io)
|
(chicken io)
|
||||||
|
(chicken string)
|
||||||
racket-kwargs
|
racket-kwargs
|
||||||
configuration
|
configuration
|
||||||
util-parser)
|
util-parser
|
||||||
|
util-csv)
|
||||||
|
|
||||||
;; Parses all dokuwiki users from current-input-port
|
;; Special CSV-like parser
|
||||||
|
(define auth-line-parser
|
||||||
|
(make-csv-line-parser #\: #f))
|
||||||
|
|
||||||
|
;; Parses all dokuwiki users from current-input-port, returns a list
|
||||||
|
;; of lists: username, name, email, groups (list)
|
||||||
(define (parse-dokuwiki-users-auth)
|
(define (parse-dokuwiki-users-auth)
|
||||||
(let loop ((lines (read-lines))
|
(let loop ((lines (read-lines))
|
||||||
(users '()))
|
(users '()))
|
||||||
(if (null? lines)
|
(if (null? lines)
|
||||||
users
|
users
|
||||||
(let ((line (car lines)))
|
(let ((line (parser-preprocess-line (car lines))))
|
||||||
|
(if (equal? line "")
|
||||||
(loop (cdr lines)
|
(loop (cdr lines)
|
||||||
users)))))
|
users)
|
||||||
|
(let* ((row (auth-line-parser line))
|
||||||
|
(username (car row))
|
||||||
|
(name (caddr row))
|
||||||
|
(email (cadddr row))
|
||||||
|
(groupstr (list-ref row 4))
|
||||||
|
(groups (string-split groupstr ",")))
|
||||||
|
(print "u=" username " n=" name " e=" email " g=" groups)
|
||||||
|
(loop (cdr lines)
|
||||||
|
(cons (list username name email groups)
|
||||||
|
users))))))))
|
||||||
|
|
||||||
;; Parses all users from given filename
|
;; Parses all users from given filename
|
||||||
(define (load-dokuwiki-users-auth fname)
|
(define (load-dokuwiki-users-auth fname)
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
(module
|
(module
|
||||||
util-csv
|
util-csv
|
||||||
(
|
(
|
||||||
|
make-csv-line-parser
|
||||||
csv-parse
|
csv-parse
|
||||||
csv-split-header
|
csv-split-header
|
||||||
csv-simple-tests!
|
csv-simple-tests!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue