1--------------------------------------------------------------------------------
2module Hakyll.Core.Provider.MetadataCache
5 , resourceInvalidateMetadataCache
9--------------------------------------------------------------------------------
10import qualified Data.Map as M
13--------------------------------------------------------------------------------
14import Hakyll.Core.Identifier
15import Hakyll.Core.Metadata
16import Hakyll.Core.Provider.Internal
17import Hakyll.Core.Provider.Metadata
18import qualified Hakyll.Core.Store as Store
21--------------------------------------------------------------------------------
22resourceMetadata :: Provider -> Identifier -> IO Metadata
24 | not (resourceExists p r) = return M.empty
26 -- TODO keep time in md cache
28 Store.Found md <- Store.get (providerStore p)
29 [name, toFilePath r, "metadata"]
33--------------------------------------------------------------------------------
34resourceBody :: Provider -> Identifier -> IO String
37 Store.Found bd <- Store.get (providerStore p)
38 [name, toFilePath r, "body"]
39 maybe (resourceString p r) return bd
42--------------------------------------------------------------------------------
43resourceInvalidateMetadataCache :: Provider -> Identifier -> IO ()
44resourceInvalidateMetadataCache p r = do
45 Store.delete (providerStore p) [name, toFilePath r, "metadata"]
46 Store.delete (providerStore p) [name, toFilePath r, "body"]
49--------------------------------------------------------------------------------
50load :: Provider -> Identifier -> IO ()
52 mmd <- Store.get store mdk :: IO (Store.Result Metadata)
55 Store.Found _ -> return ()
58 (md, body) <- loadMetadata p r
59 Store.set store mdk md
60 Store.set store bk body
62 store = providerStore p
63 mdk = [name, toFilePath r, "metadata"]
64 bk = [name, toFilePath r, "body"]
67--------------------------------------------------------------------------------
69name = "Hakyll.Core.Resource.Provider.MetadataCache"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list