diff options
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.kt | 29 |
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 @@ | |||
1 | package org.pacien.tincapp.commands | ||
2 | |||
3 | import java8.util.concurrent.CompletableFuture | ||
4 | import org.pacien.tincapp.commands.Executor.runAsyncTask | ||
5 | import org.pacien.tincapp.context.AppPaths | ||
6 | import org.pacien.tincapp.data.VpnInterfaceConfiguration | ||
7 | |||
8 | /** | ||
9 | * @author pacien | ||
10 | */ | ||
11 | object 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 | } | ||