in aws-lambda-common/src/main/java/jetbrains/buildServer/runner/lambda/directory/TarArchiveManager.kt [14:38]
override fun archiveDirectory(directory: File): File {
logger.message("Starting archival of directory $directory")
val tarBall = kotlin.io.path.createTempFile().toFile()
val output = TarArchiveOutputStream(tarBall.outputStream())
val files = recurseDirectory(directory)
files.forEach {
val entry = TarArchiveEntry(it, directory.toPath().relativize(it.toPath()).toString()).apply {
size = it.length()
mode = modeFromFilePermissions(Files.getPosixFilePermissions(it.toPath()))
}
output.putArchiveEntry(entry)
IOUtils.copy(it.inputStream(), output)
output.closeArchiveEntry()
}
output.finish()
output.close()
logger.message("Finished the archival of the directory")
return tarBall
}