private def file()

in src/main/scala/com/spotify/scio/AnnotationTypeInjector.scala [77:111]


  private def file(filename: String): Option[File] = {
    val sysPropOverride =
      Seq("generated.class.cache.directory", "bigquery.class.cache.directory")
        .flatMap(sys.props.get)
        .headOption
        .map(Paths.get(_).resolve(filename))

    val resolved = sysPropOverride.getOrElse {
      val oldBqPath = Paths
        .get(sys.props("java.io.tmpdir"))
        .resolve("bigquery-classes")
        .resolve(filename)
      val newBqPath = Paths
        .get(sys.props("java.io.tmpdir"))
        .resolve(sys.props("user.name"))
        .resolve("bigquery-classes")
        .resolve(filename)
      val path = Paths
        .get(sys.props("java.io.tmpdir"))
        .resolve(sys.props("user.name"))
        .resolve("generated-classes")
        .resolve(filename)

      Seq(path, newBqPath, oldBqPath).find(JFiles.exists(_)).getOrElse(path)
    }

    val file = resolved.toFile
    if (file.exists()) {
      Log.debug(s"Found $resolved")
      Some(file)
    } else {
      Log.warn(s"missing file: $resolved")
      None
    }
  }