From 511ddc322339f40f30c173568da26c4296722cb5 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 11 Aug 2025 22:47:16 -0700 Subject: Create directory of output file if it doesn't exist. Closes #11040. --- src/Text/Pandoc/App.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs index a5a117c04..8035475f9 100644 --- a/src/Text/Pandoc/App.hs +++ b/src/Text/Pandoc/App.hs @@ -42,11 +42,12 @@ import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TE import qualified Data.Text.Encoding.Error as TE import Data.Char (toLower) -import System.Directory (doesDirectoryExist, createDirectory) +import System.Directory (doesDirectoryExist, createDirectory, + createDirectoryIfMissing) import Codec.Archive.Zip (toArchiveOrFail, extractFilesFromArchive, ZipOption(..)) import System.Exit (exitSuccess) -import System.FilePath ( takeBaseName, takeExtension) +import System.FilePath ( takeBaseName, takeExtension, takeDirectory) import System.IO (nativeNewline, stdout) import qualified System.IO as IO (Newline (..)) import Text.Pandoc @@ -116,6 +117,8 @@ convertWithOpts scriptingEngine opts = do CRLF -> IO.CRLF LF -> IO.LF Native -> nativeNewline + let outputFileDir = takeDirectory outputFile + createDirectoryIfMissing True outputFileDir case output of TextOutput t -> writerFn eol outputFile t BinaryOutput bs -> writeFnBinary outputFile bs -- cgit v1.2.3