mirror of
https://github.com/Start9Labs/registry.git
synced 2026-03-31 04:03:40 +00:00
strictness annotations
This commit is contained in:
3
src/Lib/External/AppMgr.hs
vendored
3
src/Lib/External/AppMgr.hs
vendored
@@ -6,6 +6,7 @@
|
|||||||
{-# LANGUAGE TupleSections #-}
|
{-# LANGUAGE TupleSections #-}
|
||||||
{-# LANGUAGE TypeApplications #-}
|
{-# LANGUAGE TypeApplications #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
{-# LANGUAGE BangPatterns #-}
|
||||||
|
|
||||||
module Lib.External.AppMgr where
|
module Lib.External.AppMgr where
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ getConfig appmgrPath appPath e@(Extension appId) = fmap decodeUtf8 $ do
|
|||||||
|
|
||||||
getManifest :: (MonadIO m, KnownSymbol a) => FilePath -> FilePath -> Extension a -> S9ErrT m LBS.ByteString
|
getManifest :: (MonadIO m, KnownSymbol a) => FilePath -> FilePath -> Extension a -> S9ErrT m LBS.ByteString
|
||||||
getManifest appmgrPath appPath e@(Extension appId) = do
|
getManifest appmgrPath appPath e@(Extension appId) = do
|
||||||
(ec, bs) <- readProcessInheritStderr (appmgrPath <> "embassy-sdk") ["inspect", "manifest", appPath <> show e] ""
|
(!ec, !bs) <- readProcessInheritStderr (appmgrPath <> "embassy-sdk") ["inspect", "manifest", appPath <> show e] ""
|
||||||
case ec of
|
case ec of
|
||||||
ExitSuccess -> pure bs
|
ExitSuccess -> pure bs
|
||||||
ExitFailure n -> throwE $ AppMgrE [i|embassy-sdk inspect manifest #{appId}|] n
|
ExitFailure n -> throwE $ AppMgrE [i|embassy-sdk inspect manifest #{appId}|] n
|
||||||
|
|||||||
@@ -14,19 +14,19 @@ import Data.Aeson
|
|||||||
import qualified Data.HashMap.Strict as HM
|
import qualified Data.HashMap.Strict as HM
|
||||||
import qualified Data.List.NonEmpty as NE
|
import qualified Data.List.NonEmpty as NE
|
||||||
|
|
||||||
|
import qualified Data.ByteString.Lazy as BS
|
||||||
|
import Data.Functor.Contravariant ( Contravariant(contramap) )
|
||||||
|
import Data.String.Interpolate.IsString
|
||||||
|
-- import Model
|
||||||
|
import qualified Data.Text as T
|
||||||
|
import Database.Persist.Postgresql
|
||||||
|
import qualified GHC.Read ( Read(..) )
|
||||||
|
import qualified GHC.Show ( Show(..) )
|
||||||
|
import Lib.Registry
|
||||||
import Lib.Types.Emver
|
import Lib.Types.Emver
|
||||||
import Orphans.Emver ( )
|
import Orphans.Emver ( )
|
||||||
import System.Directory
|
import System.Directory
|
||||||
import Lib.Registry
|
|
||||||
-- import Model
|
|
||||||
import qualified Data.Text as T
|
|
||||||
import Data.String.Interpolate.IsString
|
|
||||||
import qualified Data.ByteString.Lazy as BS
|
|
||||||
import Database.Persist.Postgresql
|
|
||||||
import Yesod
|
import Yesod
|
||||||
import Data.Functor.Contravariant ( Contravariant(contramap) )
|
|
||||||
import qualified GHC.Read ( Read(..) )
|
|
||||||
import qualified GHC.Show ( Show(..) )
|
|
||||||
|
|
||||||
newtype AppIdentifier = AppIdentifier { unAppIdentifier :: Text }
|
newtype AppIdentifier = AppIdentifier { unAppIdentifier :: Text }
|
||||||
deriving (Eq)
|
deriving (Eq)
|
||||||
@@ -151,11 +151,12 @@ addFileTimestamp appDir ext service v = do
|
|||||||
pure $ Just service { storeAppTimestamp = Just time }
|
pure $ Just service { storeAppTimestamp = Just time }
|
||||||
|
|
||||||
data ServiceDependencyInfo = ServiceDependencyInfo
|
data ServiceDependencyInfo = ServiceDependencyInfo
|
||||||
{ serviceDependencyInfoOptional :: Maybe Text
|
{ serviceDependencyInfoOptional :: Maybe Text
|
||||||
, serviceDependencyInfoVersion :: VersionRange
|
, serviceDependencyInfoVersion :: VersionRange
|
||||||
, serviceDependencyInfoDescription :: Maybe Text
|
, serviceDependencyInfoDescription :: Maybe Text
|
||||||
, serviceDependencyInfoCritical :: Bool
|
, serviceDependencyInfoCritical :: Bool
|
||||||
} deriving (Show)
|
}
|
||||||
|
deriving Show
|
||||||
instance FromJSON ServiceDependencyInfo where
|
instance FromJSON ServiceDependencyInfo where
|
||||||
parseJSON = withObject "service dependency info" $ \o -> do
|
parseJSON = withObject "service dependency info" $ \o -> do
|
||||||
serviceDependencyInfoOptional <- o .:? "optional"
|
serviceDependencyInfoOptional <- o .:? "optional"
|
||||||
@@ -185,16 +186,17 @@ instance FromJSON ServiceAlert where
|
|||||||
"stop" -> pure STOP
|
"stop" -> pure STOP
|
||||||
_ -> fail "unknown service alert type"
|
_ -> fail "unknown service alert type"
|
||||||
data ServiceManifest = ServiceManifest
|
data ServiceManifest = ServiceManifest
|
||||||
{ serviceManifestId :: AppIdentifier
|
{ serviceManifestId :: !AppIdentifier
|
||||||
, serviceManifestTitle :: Text
|
, serviceManifestTitle :: !Text
|
||||||
, serviceManifestVersion :: Version
|
, serviceManifestVersion :: !Version
|
||||||
, serviceManifestDescriptionLong :: Text
|
, serviceManifestDescriptionLong :: !Text
|
||||||
, serviceManifestDescriptionShort :: Text
|
, serviceManifestDescriptionShort :: !Text
|
||||||
, serviceManifestReleaseNotes :: Text
|
, serviceManifestReleaseNotes :: !Text
|
||||||
, serviceManifestIcon :: Maybe Text
|
, serviceManifestIcon :: !(Maybe Text)
|
||||||
, serviceManifestAlerts :: HM.HashMap ServiceAlert (Maybe Text)
|
, serviceManifestAlerts :: !(HM.HashMap ServiceAlert (Maybe Text))
|
||||||
, serviceManifestDependencies :: HM.HashMap AppIdentifier ServiceDependencyInfo
|
, serviceManifestDependencies :: !(HM.HashMap AppIdentifier ServiceDependencyInfo)
|
||||||
} deriving (Show)
|
}
|
||||||
|
deriving Show
|
||||||
instance FromJSON ServiceManifest where
|
instance FromJSON ServiceManifest where
|
||||||
parseJSON = withObject "service manifest" $ \o -> do
|
parseJSON = withObject "service manifest" $ \o -> do
|
||||||
serviceManifestId <- o .: "id"
|
serviceManifestId <- o .: "id"
|
||||||
|
|||||||
Reference in New Issue
Block a user