ants.bindgen-interface_native0.4_3.0.1.5.source-code.Utils.scala Maven / Gradle / Ivy
The newest version!
package bindgen.interface
import java.io.*
import java.lang.ProcessBuilder.Redirect
import java.nio.file.*
import scala.sys.process.ProcessLogger
import scala.util.control.NonFatal
import BindingLang.*
private[interface] object Utils {
private[interface] implicit class FileOps(val f: File) extends AnyVal {
def /(other: String): File = {
val result = Paths.get(f.toPath.toString, other).toFile
Files.createDirectories(f.toPath())
result
}
}
private[interface] def fileWriter(destination: File)(f: Writer => Unit) = {
var fw: Option[BufferedWriter] = None
try {
fw = Option(
new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(destination))
)
)
fw.foreach(f)
} catch {
case NonFatal(ex) => fw.foreach(_.close()); throw ex
} finally {
fw.foreach(_.close())
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy