switch to a safe version of </>

This commit is contained in:
Mirek Kratochvil 2023-10-23 20:05:46 +02:00
parent e3d1f22ff1
commit 7a60fce085
3 changed files with 13 additions and 3 deletions

View file

@ -14,7 +14,7 @@ import qualified Data.Yaml as Y
import Lens.Micro
import Lens.Micro.Aeson
import Lens.Micro.Mtl
import System.FilePath ((</>), joinPath, splitDirectories, takeFileName)
import System.FilePath (joinPath, splitDirectories, takeFileName)
import AesonUtils
import Types

View file

@ -28,7 +28,7 @@ import System.Directory
, doesDirectoryExist
, getDirectoryContents
)
import System.FilePath ((</>), splitDirectories, takeDirectory)
import System.FilePath (splitDirectories, takeDirectory)
import Text.Pandoc.Definition
import qualified Text.Pandoc.Walk
import Types
@ -96,6 +96,16 @@ unAbsolute = dropWhile (== '/')
withPandocBlocks :: ([Block] -> [Block]) -> Pandoc -> Pandoc
withPandocBlocks f (Pandoc meta blocks) = Pandoc meta (f blocks)
infixr 5 </>
a </> b@('/':_) =
error
$ "internal error: unchecked concatenation of absolute path: "
++ a
++ " </> "
++ b
a </> b = (System.FilePath.</>) a b
-- | Get all contents of a directory. (Interned from Hakyll.)
getRecursiveContents ::
(FilePath -> IO Bool) -- ^ Ignore this file/directory

View file

@ -306,7 +306,7 @@ installRedirect target' from = do
target <- rootedPageLink target'
tname <- use redirectTemplate
templ <- use $ templates . to (M.! fromString tname)
file <- indexFilename from
file <- indexFilename (unAbsolute from)
checkTarget file
io $ do
putStrLn $ "@ -> " ++ file ++ " -> " ++ target