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
|
||||
forM_ (persistUniqueKeys v) deleteBy
|
||||
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 System.Directory (getModificationTime)
|
||||
import System.FilePath.Glob (glob)
|
||||
|
||||
|
||||
testdataDir :: FilePath
|
||||
testdataDir = "testdata"
|
||||
@ -1283,3 +1286,19 @@ fillDb = do
|
||||
_other -> return mempty
|
||||
|
||||
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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user