svn-client to read files added by mario-goulart on Sat Jul 18 16:13:47 2026
(import srfi-1 srfi-13 svn-client) (import big-chicken) (define qwiki-source-path (make-parameter "/home/mario/tmp/wiki")) (define qwiki-repos-username (make-parameter "anonymous")) (define qwiki-repos-password (make-parameter "")) (define (path->source-filename path) (make-pathname (qwiki-source-path) (string-join path "/"))) (define (call-with-file-to-remove filename proc) (handle-exceptions exn (begin (delete-file* filename) (signal exn)) (let ((result (call-with-input-file filename (lambda (f) (handle-exceptions exn (begin (close-input-port f) (signal exn)) (proc f)))))) (delete-file* filename) result))) (define (call-with-input-revision file rev proc) (let ((filename (svn-client-cat file (make-svn-opt-revision-number rev) (qwiki-repos-username) (qwiki-repos-password)))) (unless filename (error "No such file" file)) (call-with-file-to-remove filename proc))) (define (read-svn-file path rev) (call-with-input-revision (path->source-filename (string-split path "/")) rev (lambda (p) (with-input-from-port p read-string)))) (for-each (lambda (file) (fprintf (current-error-port) "~a~%" file) (for-each (lambda (rev) (print (read-svn-file "srfi-support" rev))) (iota 3000 40000))) '("srfi-support" "users/klutometis" "users/moe-aboulkheir" "users/mario-domenech-goulart"))