mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-26 02:11:53 +00:00
35 lines
1.1 KiB
Haskell
35 lines
1.1 KiB
Haskell
{-# LANGUAGE ScopedTypeVariables #-}
|
|
module Handler.Version where
|
|
|
|
import Startlude
|
|
|
|
import Yesod.Core
|
|
|
|
import Constants
|
|
import Foundation
|
|
import Handler.Types.Status
|
|
import Lib.Registry
|
|
import Lib.Semver
|
|
import Lib.Types.Semver
|
|
|
|
getVersionR :: Handler AppVersionRes
|
|
getVersionR = pure . AppVersionRes $ registryVersion
|
|
|
|
getVersionAppR :: Text -> Handler (Maybe AppVersionRes)
|
|
getVersionAppR = getVersionWSpec appResourceDir
|
|
|
|
getVersionAgentR :: Handler (Maybe AppVersionRes)
|
|
getVersionAgentR = getVersionWSpec sysResourceDir "agent"
|
|
|
|
getVersionAppMgrR :: Handler (Maybe AppVersionRes)
|
|
getVersionAppMgrR = getVersionWSpec sysResourceDir "appmgr"
|
|
|
|
getVersionTorrcR :: Handler (Maybe AppVersionRes)
|
|
getVersionTorrcR = getVersionWSpec sysResourceDir "torrc"
|
|
|
|
getVersionWSpec :: FilePath -> Text -> Handler (Maybe AppVersionRes)
|
|
getVersionWSpec rootDir appId = do
|
|
spec <- querySpecD mostRecentVersion <$> lookupGetParam "spec"
|
|
appVersions <- registeredAppVersions (toS appId) <$> loadRegistry rootDir
|
|
pure . fmap (AppVersionRes . version) $ getSpecifiedAppVersion spec appVersions
|