diff options
| author | John MacFarlane <[email protected]> | 2025-08-11 22:47:16 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2025-08-11 22:47:52 -0700 |
| commit | 511ddc322339f40f30c173568da26c4296722cb5 (patch) | |
| tree | a9aa6b00f20b7237205c48b8c2d2331aa10c9a30 | |
| parent | 529b6d1667561519599a95406c991f951e5ef43f (diff) | |
Create directory of output file if it doesn't exist.
Closes #11040.
| -rw-r--r-- | src/Text/Pandoc/App.hs | 7 |
1 files 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 |
