diff options
author | Alexander Foremny <aforemny@posteo.de> | 2023-12-07 03:58:21 +0100 |
---|---|---|
committer | Alexander Foremny <aforemny@posteo.de> | 2023-12-07 04:01:23 +0100 |
commit | c1ff403387064ff0027b9e762cc6f6a8fa20c8d9 (patch) | |
tree | 62b9a4cfccfc4fce42055ef94b9de41d1dfcc0a7 /app/History/Cache.hs | |
parent | 3c6e62b75293b6625509ade3c278fc2d4d147c30 (diff) |
chore: move remaining `History.*` modules outside of `History`
Diffstat (limited to 'app/History/Cache.hs')
-rw-r--r-- | app/History/Cache.hs | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/app/History/Cache.hs b/app/History/Cache.hs deleted file mode 100644 index 978f3d9..0000000 --- a/app/History/Cache.hs +++ /dev/null @@ -1,33 +0,0 @@ -module History.Cache - ( cached, - cachedMaybe, - ) -where - -import Data.Binary (Binary, decodeFileOrFail, encodeFile) -import Data.Text qualified as T -import Debug -import Git qualified -import System.Directory (createDirectoryIfMissing, doesFileExist) -import System.FilePath ((</>)) - -cached :: Binary a => T.Text -> IO a -> IO a -cached key func = do - root <- Git.getRootDir - createDirectoryIfMissing True (root </> ".anissue") - let file = (root </> ".anissue" </> T.unpack key) - doesFileExist file >>= \case - True -> - decodeFileOrFail file >>= \case - Left e -> debug "e" e `seq` generate file - Right blob -> pure blob - False -> generate file - where - generate file = do - blob <- func - encodeFile (debug "cache miss" file) blob - pure blob - -cachedMaybe :: Binary a => Maybe T.Text -> IO a -> IO a -cachedMaybe Nothing func = func -cachedMaybe (Just key) func = cached key func |