aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/commands/TincApp.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/commands/TincApp.kt')
-rw-r--r--app/src/main/java/org/pacien/tincapp/commands/TincApp.kt29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/commands/TincApp.kt b/app/src/main/java/org/pacien/tincapp/commands/TincApp.kt
new file mode 100644
index 0000000..108b27d
--- /dev/null
+++ b/app/src/main/java/org/pacien/tincapp/commands/TincApp.kt
@@ -0,0 +1,29 @@
1package org.pacien.tincapp.commands
2
3import java8.util.concurrent.CompletableFuture
4import org.pacien.tincapp.commands.Executor.runAsyncTask
5import org.pacien.tincapp.context.AppPaths
6import org.pacien.tincapp.data.VpnInterfaceConfiguration
7
8/**
9 * @author pacien
10 */
11object TincApp {
12
13 private val SCRIPT_SUFFIXES = listOf("-up", "-down", "-created", "-accepted")
14 private val STATIC_SCRIPTS = listOf("tinc", "host", "subnet", "invitation").flatMap { s -> SCRIPT_SUFFIXES.map { s + it } }
15
16 private fun listScripts(netName: String) = AppPaths.confDir(netName).listFiles { f -> f.name in STATIC_SCRIPTS } +
17 AppPaths.hostsDir(netName).listFiles { f -> SCRIPT_SUFFIXES.none { f.name.endsWith(it) } }
18
19 fun removeScripts(netName: String): CompletableFuture<Void> = runAsyncTask {
20 listScripts(netName).forEach { it.delete() }
21 }
22
23 fun generateIfaceCfg(netName: String): CompletableFuture<Void> = runAsyncTask {
24 VpnInterfaceConfiguration
25 .fromInvitation(AppPaths.invitationFile(netName))
26 .write(AppPaths.netConfFile(netName))
27 }
28
29}