protected def loadInFiles()

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
  }