in app/helpers/UserInfoCache.scala [47:95]
protected def loadInFiles():Map[String,UserInfoBuilder] = {
val vaultSettingsDir = config.get[String]("vaults.settings-path")
logger.info(s"Loading configuration files from $vaultSettingsDir")
val dir = new File(vaultSettingsDir)
val files = dir.listFiles(vaultFileFilter)
if(files==null){
logger.error(s"Could not find directory $vaultSettingsDir to load vault settings from")
terminate(2)
}
val maybeBuilders = files.map(f=>{
if(f.isFile) {
logger.info(s"Loading login info from ${f.getAbsolutePath}")
Some(UserInfoBuilder.builderFromFile(f))
} else {
None
}
}).collect({ case Some(entry)=>entry})
val failures = maybeBuilders.collect({case Failure(err)=>err})
if(failures.nonEmpty){
logger.error(s"${failures.length} out of ${maybeBuilders.length} vault files failed to load: ")
failures.foreach(err=>logger.error("Vault file failed: ", err))
}
val builders = maybeBuilders.collect({case Success(info)=>info})
if(builders.isEmpty){
logger.error(s"Could not load any vault information files from $vaultSettingsDir, exiting app")
terminate(2)
}
//userInfos.foreach(info=>logger.debug(s"${info.toString}: ${info.getVault} on ${info.getAddresses.mkString(",")}"))
val names = builders.map(_.vaultName.getOrElse("(no description)"))
logger.info(s"Loaded ${builders.length} vault information files: $names")
builders.map(b=>{
b.getUserInfo.map(userInfo=>{
userInfo.getAddresses.map(addr=>(s"$addr-${userInfo.getVault}", b))
})
})
.collect({case Success(elem)=>elem})
.flatten
.toMap
}