Skip to content

Commit

Permalink
Get Cabal version from Paths_*
Browse files Browse the repository at this point in the history
  • Loading branch information
evenbrenden committed Jan 18, 2023
1 parent c95b28c commit 178de38
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 26 deletions.
14 changes: 5 additions & 9 deletions src/Unleash/HttpClient.hs
Expand Up @@ -2,7 +2,6 @@

module Unleash.HttpClient (
getAllClientFeatures,
getVersion,
sendMetrics,
register,
) where
Expand All @@ -14,8 +13,11 @@ import qualified Data.List.NonEmpty as NE
import Data.Map.Strict (Map, fromListWith)
import Data.Maybe (fromJust)
import Data.Proxy (Proxy (..))
import Data.Text (Text, pack)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Version (showVersion)
import qualified Network.HTTP.Media as M
import Paths_unleash_client_haskell_core (version)
import Servant.API (Accept (contentTypes), Get, Header, JSON, MimeRender (mimeRender), NoContent, PostNoContent, ReqBody, type (:<|>) (..), type (:>))
import Servant.Client (ClientEnv, ClientError, client, runClientM)
import Unleash.Internal.DomainTypes (Features, fromJsonFeatures, supportedStrategies)
Expand Down Expand Up @@ -80,19 +82,13 @@ sendMetrics clientEnv apiKey metricsPayload = do
let no = length bools - yes
YesAndNoes yes no

getVersion :: IO (Maybe Text)
getVersion = do
cabalFile <- readFile "unleash-client-haskell-core.cabal"
pure $ fmap pack $ (!! 1) . words <$> (find (isPrefixOf "version") . lines $ cabalFile)

register :: ClientEnv -> Maybe ApiKey -> RegisterPayload -> IO (Either ClientError NoContent)
register clientEnv apiKey registerPayload = do
version <- getVersion
let fullRegisterPayload =
FullRegisterPayload
{ appName = registerPayload.appName,
instanceId = registerPayload.instanceId,
sdkVersion = "unleash-client-haskell-core:" <> fromJust version,
sdkVersion = "unleash-client-haskell-core:" <> (T.pack . showVersion) version,
strategies = supportedStrategies,
started = registerPayload.started,
interval = registerPayload.intervalSeconds * 1000
Expand Down
16 changes: 0 additions & 16 deletions test/VersionSpec.hs

This file was deleted.

3 changes: 2 additions & 1 deletion unleash-client-haskell-core.cabal
Expand Up @@ -46,6 +46,8 @@ library
Unleash.HttpClient
Unleash.Internal.JsonTypes
Unleash.Internal.DomainTypes
other-modules:
Paths_unleash_client_haskell_core
hs-source-dirs: src
build-depends:
aeson,
Expand All @@ -71,7 +73,6 @@ test-suite unleash-client-haskell-core-test
UnleashHttpClientSpec
UnleashSpecificationJsonTypes
UnleashSpecificationSpec
VersionSpec
build-depends:
unleash-client-haskell-core,
aeson,
Expand Down

0 comments on commit 178de38

Please sign in to comment.