From 320b10451456aa6fe37a6a64baf1933819689c06 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Tue, 3 Jun 2008 01:47:31 +0000 Subject: [PATCH] added a create? argument to get-dest-directory svn: r10105 original commit: 24d6e488ce92fb2adb6b73b28eeba8c9329ca19e --- collects/scribble/base-render.ss | 8 +++++--- collects/scribble/html-render.ss | 12 ++++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/collects/scribble/base-render.ss b/collects/scribble/base-render.ss index 3fc3bb42..491b581f 100644 --- a/collects/scribble/base-render.ss +++ b/collects/scribble/base-render.ss @@ -18,7 +18,10 @@ [refer-to-existing-files #f] [root-path #f]) - (define/public (get-dest-directory) dest-dir) + (define/public (get-dest-directory [create? #f]) + (when (and dest-dir create? (not (directory-exists? dest-dir))) + (make-directory* dest-dir)) + dest-dir) (define/public (get-substitutions) null) @@ -402,7 +405,7 @@ (string->path fn) fn) (let ([src-dir (path-only fn)] - [dest-dir (get-dest-directory)] + [dest-dir (get-dest-directory #t)] [fn (file-name-from-path fn)]) (let ([src-file (build-path (or src-dir (current-directory)) fn)] [dest-file (build-path (or dest-dir (current-directory)) fn)]) @@ -421,7 +424,6 @@ (and (equal? s d) (or (eof-object? s) (loop))))))))))) (when (file-exists? dest-file) (delete-file dest-file)) - (make-directory* (path-only dest-file)) (copy-file src-file dest-file)) (path->string fn))))) diff --git a/collects/scribble/html-render.ss b/collects/scribble/html-render.ss index e96e87c6..7590562d 100644 --- a/collects/scribble/html-render.ss +++ b/collects/scribble/html-render.ss @@ -998,11 +998,15 @@ (define/override (get-suffix) #"") - (define/override (get-dest-directory) + (define/override (get-dest-directory [create? #f]) (or (and (current-subdirectory) - (build-path (or (super get-dest-directory) (current-directory)) - (current-subdirectory))) - (super get-dest-directory))) + (let ([d (build-path (or (super get-dest-directory) + (current-directory)) + (current-subdirectory))]) + (when (and create? (not (directory-exists? d))) + (make-directory* d)) + d)) + (super get-dest-directory create?))) (define/override (derive-filename d) (let ([fn (format "~a.html"