packages feed

bkr-0.1.0: src/System/Bkr/TargetServices/S3/BkrAwsConfig.hs

{-# LANGUAGE OverloadedStrings #-}

module System.Bkr.TargetServices.S3.BkrAwsConfig ( getS3Config
                                          , getS3BucketName
                                          ) where

import System.Bkr.BkrConfig

import Aws.Aws
import Aws.Credentials
import Aws.Http
import Aws.S3.Info
import Aws.Ses.Info
import Aws.Signature
import Aws.SimpleDb.Info
import Aws.Sqs.Info
import Data.Maybe (fromJust)
import Control.Monad (liftM)

import qualified Data.ByteString.Char8 as B
import qualified Data.Text as T

getS3Config :: IO Configuration
getS3Config = do
     -- Get AWS access and secret keys from bkr.conf
     confPairs <- getConfFile >>= getConfPairsFromFileS' . fromJust
     let cr = Credentials (B.pack $ fromJust $ lookup "awsaccesskeyid" confPairs) (B.pack $ fromJust $ lookup "awssecretaccesskey" confPairs)
     
     return Configuration { timeInfo = Timestamp
                          , credentials = cr
                          , sdbInfo = sdbHttpsPost sdbUsEast
                          , sdbInfoUri = sdbHttpsGet sdbUsEast
                          , s3Info = s3 HTTP s3EndpointUsClassic False
                          , s3InfoUri = s3 HTTP s3EndpointUsClassic True
                          , sqsInfo = sqs HTTP sqsEndpointUsClassic False
                          , sqsInfoUri = sqs HTTP sqsEndpointUsClassic True
                          , sesInfo = sesHttpsPost sesUsEast
                          , sesInfoUri = sesHttpsGet sesUsEast
                          , logger = defaultLog Warning
                          }

getS3BucketName :: IO T.Text
--getS3BucketName = do
     --confPairs <- getConfPairsFromFileS' "bkr.conf"
     --return $ T.pack $ fromJust $ lookup "s3bucketname" confPairs
     
--getS3BucketName = getConfPairsFromFileS' "bkr.conf" >>= return . T.pack . fromJust . lookup "s3bucketname"

getS3BucketName = liftM (T.pack . fromJust . lookup "s3bucketname") (getConfFile >>= getConfPairsFromFileS' . fromJust)