packages feed

hercules-ci-cli-0.2.2: src/Hercules/CLI/Common.hs

module Hercules.CLI.Common
  ( runAuthenticated,
    exitMsg,
  )
where

import Hercules.CLI.Client
import Hercules.CLI.Credentials (determineDomain, readToken)
import Hercules.CLI.Exception (exitMsg)
import Protolude
import RIO (RIO, runRIO)
import Servant.Auth.Client (Token (Token))

runAuthenticated :: RIO (HerculesClientToken, HerculesClientEnv) b -> IO b
runAuthenticated m = do
  clientEnv <- Hercules.CLI.Client.init
  domain <- determineDomain
  token <- readToken domain
  runRIO (HerculesClientToken $ Token $ encodeUtf8 token, clientEnv) m