module Solr.Args
(
managedResource,
)
where
import Solr.Prelude
import OptparseApplicative.Simple.Parser
import qualified Attoparsec.Data as A
import qualified Data.Text.Encoding as B
import qualified Control.Monad.Managed.Safe as C
import qualified Solr.Managed as D
import qualified Solr.Effect.Effect as E
baseURL :: Maybe Text -> (Text -> Text) -> Parser ByteString
baseURL collectionNameMaybe updateName =
argument (updateName "base-url") Nothing description def parser
where
description =
Just "Base URL of Solr REST API"
def =
case collectionNameMaybe of
Just collectionName ->
Just (value, text)
where
text =
"http://127.0.0.1:8983/solr/" <> collectionName
value =
B.encodeUtf8 text
Nothing ->
Nothing
parser =
A.utf8Bytes
managedResource :: Maybe Text -> (Text -> Text) -> Parser (C.Managed E.Resource)
managedResource collectionNameMaybe updateArgumentName =
D.resource <$> baseURL collectionNameMaybe updateArgumentName