Um objeto Scala de configuração simples baseado em ambiente para um aplicativo ou script simples

case class Config(input: String, output: String)
val config
=
Some(
List(inputTableEnvvar, outputTableEnvvar)
.map(sys.env.get)
.flatten
)
.flatMap {
// you'll have to keep the parameters here
// aligned with parameters of the case class
case List(a: String, b: String) => Some( (a, b) )
case _ => None
}
.map(Config.tupled)

configserá Nonese qualquer uma das variáveis ​​de ambiente não for especificada ou retornar nulo. Se você quiser eliminar strings vazias, adicione outra mapantes do achatamento que trata disso.