/
backup.kts
31 lines (25 loc) · 916 Bytes
/
backup.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//kotlinc -script backup.kts
import java.io.File
import java.nio.file.Files
import java.nio.file.Path
import java.nio.file.StandardCopyOption
val modNames = listOf("LOTRNames", "StraightUp", "EngagingEvents")
val paths = File("config.txt").readLines()
val modDirectory = paths
.map { File(it.split("\\").joinToString(File.separator)) }
.first { it.exists() }
println("Backing up Files from ${modDirectory.absolutePath}")
modDirectory.listFiles()
.filter { it.name in modNames }
.forEach { mod ->
val dest = Path.of(".", mod.name)
dest.toFile().mkdirs()
copyDir(mod.toPath(), dest)
}
fun copyDir(src: Path, dest: Path) {
Files.walk(src).filter { !it.toFile().isDirectory }.forEach {
val destLocation = dest.resolve(src.relativize(it))
destLocation.toFile().mkdirs()
Files.copy(it, destLocation, StandardCopyOption.REPLACE_EXISTING)
}
}