diff --git a/Stackage/Database.hs b/Stackage/Database.hs index 1233fb3..ee721c0 100644 --- a/Stackage/Database.hs +++ b/Stackage/Database.hs @@ -4,10 +4,11 @@ module Stackage.Database , SnapName (..) , SnapshotId () , Snapshot (..) + , newestSnapshot , newestLTS , newestLTSMajor - , ltsMajorVersions , newestNightly + , ltsMajorVersions , snapshotBefore , nightlyBefore , ltsBefore @@ -401,6 +402,11 @@ run inner = do StackageDatabase pool <- getStackageDatabase liftIO $ runSqlPool inner pool +newestSnapshot :: GetStackageDatabase m => SnapshotBranch -> m (Maybe SnapName) +newestSnapshot LtsBranch = map (uncurry SNLts) <$> newestLTS +newestSnapshot NightlyBranch = map SNNightly <$> newestNightly +newestSnapshot (LtsMajorBranch x) = map (SNLts x) <$> newestLTSMajor x + newestLTS :: GetStackageDatabase m => m (Maybe (Int, Int)) newestLTS = run $ liftM (fmap go) $ selectFirst [] [Desc LtsMajor, Desc LtsMinor]