app/matrixstore/MatrixStoreEnvironmentConfigProvider.scala (21 lines of code) (raw):
package matrixstore
class MatrixStoreEnvironmentConfigProvider extends MatrixStoreConfigProvider {
private def stringToArray(str:String):Array[String] = {
str.split("\\s*,\\s*")
}
override def get(): Either[String, MatrixStoreConfig] = {
(sys.env.get("MATRIX_STORE_ACCESS_KEY_ID"),
sys.env.get("MATRIX_STORE_ACCESS_KEY_SECRET"),
sys.env.get("MATRIX_STORE_CLUSTER_ID"),
sys.env.get("MATRIX_STORE_HOSTS").map(stringToArray),
sys.env.get("NEARLINE_VAULT_ID"),
sys.env.get("INTERNALARCHIVE_VAULT_ID")
) match {
case (Some(accessKeyId), Some(accessKeySecret), Some(clusterId), Some(hosts), Some(vaultId), maybeArchiveVaultId)=>
Right(MatrixStoreConfig(hosts, clusterId, accessKeyId, accessKeySecret, vaultId, maybeArchiveVaultId))
case (_,_,_,_,_,_)=>
Left("You must specify MATRIX_STORE_ACCESS_KEY_ID, MATRIX_STORE_ACCESS_KEY_SECRET and MATRIX_STORE_HOSTS (comma separated " +
"string for several hosts)")
}
}
}