aws-sdk-0.6.0.0: AWS/Credential.hs
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
module AWS.Credential
( Credential(..)
, AccessKey
, SecretAccessKey
, loadCredential
, loadCredentialFromFile
, newCredential
) where
import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
import Text.Config
import Text.Parsec
mkConfig "configParser" [config|
Credential
accessKey ByteString
secretAccessKey ByteString
|]
type AccessKey = ByteString
type SecretAccessKey = ByteString
-- | Load credential from \"./aws.config\".
loadCredential :: IO Credential
loadCredential = loadCredentialFromFile "aws.config"
-- | Create new credential.
newCredential :: AccessKey -> SecretAccessKey -> Credential
newCredential key secret = Credential key secret
-- | Load credential from file.
loadCredentialFromFile :: FilePath -> IO Credential
loadCredentialFromFile path = do
str <- BS.readFile path
case parse configParser "" str of
Left err -> fail $ show err
Right conf -> return conf