chore: have db-fill use modification times for changelog
This commit is contained in:
parent
70d552cda7
commit
44d43c706a
@ -139,3 +139,17 @@ put :: ( MonadIO m
|
|||||||
put v = do
|
put v = do
|
||||||
forM_ (persistUniqueKeys v) deleteBy
|
forM_ (persistUniqueKeys v) deleteBy
|
||||||
insert v
|
insert v
|
||||||
|
|
||||||
|
selectMaybe :: forall record backend m.
|
||||||
|
( MonadIO m
|
||||||
|
, PersistQueryRead backend
|
||||||
|
, PersistRecordBackend record backend
|
||||||
|
)
|
||||||
|
=> [Filter record] -> [SelectOpt record]
|
||||||
|
-> ReaderT backend m (Maybe (Entity record))
|
||||||
|
selectMaybe fltrs opts = listToMaybe <$> selectList fltrs (LimitTo 1 : opts')
|
||||||
|
where opts' = filter (not . isLimit) opts
|
||||||
|
isLimit = \case
|
||||||
|
LimitTo _ -> True
|
||||||
|
_other -> False
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,9 @@ import Data.List (genericLength)
|
|||||||
|
|
||||||
import qualified Data.Conduit.Combinators as C
|
import qualified Data.Conduit.Combinators as C
|
||||||
|
|
||||||
|
import System.Directory (getModificationTime)
|
||||||
|
import System.FilePath.Glob (glob)
|
||||||
|
|
||||||
|
|
||||||
testdataDir :: FilePath
|
testdataDir :: FilePath
|
||||||
testdataDir = "testdata"
|
testdataDir = "testdata"
|
||||||
@ -1283,3 +1286,19 @@ fillDb = do
|
|||||||
_other -> return mempty
|
_other -> return mempty
|
||||||
|
|
||||||
liftIO . LBS.writeFile (testdataDir </> "bigAlloc_ordinal.csv") $ Csv.encode ordinalPriorities
|
liftIO . LBS.writeFile (testdataDir </> "bigAlloc_ordinal.csv") $ Csv.encode ordinalPriorities
|
||||||
|
|
||||||
|
forM_ universeF $ \changelogItem -> do
|
||||||
|
let ptn = "templates/i18n/changelog/" <> unpack (toPathPiece changelogItem) <> ".*"
|
||||||
|
files <- liftIO $ glob ptn
|
||||||
|
mTime <- fmap minimum . fromNullable <$> mapM (liftIO . getModificationTime) files
|
||||||
|
whenIsJust mTime $ \(utctDay -> firstSeen) -> do
|
||||||
|
oldFirstSeen <- selectMaybe [ ChangelogItemFirstSeenItem ==. changelogItem ] [ Asc ChangelogItemFirstSeenFirstSeen ]
|
||||||
|
case oldFirstSeen of
|
||||||
|
Just (Entity firstSeenId oldEntry)
|
||||||
|
| changelogItemFirstSeenFirstSeen oldEntry > firstSeen
|
||||||
|
-> update firstSeenId [ ChangelogItemFirstSeenFirstSeen =. firstSeen ]
|
||||||
|
Just _
|
||||||
|
-> return ()
|
||||||
|
Nothing
|
||||||
|
-> insert_ $ ChangelogItemFirstSeen changelogItem firstSeen
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user