diff --git a/build.gradle b/build.gradle index d76cdd7..58a3601 100644 --- a/build.gradle +++ b/build.gradle @@ -79,7 +79,7 @@ task fatJar(type: Jar) { manifest { attributes 'Implementation-Title': 'Gradle Jar File Example', 'Implementation-Version': project.version, - 'Main-Class': 'io.provs.entry.EntryKt' + 'Main-Class': 'io.provs.core.entry.EntryKt' } archivesBaseName = project.name + '-all' duplicatesStrategy(DuplicatesStrategy.EXCLUDE) @@ -99,7 +99,7 @@ task fatJarLatest(type: Jar) { manifest { attributes 'Implementation-Title': 'Gradle Jar File Example', 'Implementation-Version': project.version, - 'Main-Class': 'io.provs.entry.EntryKt' + 'Main-Class': 'io.provs.core.entry.EntryKt' } with jar archiveFileName = 'provs-fat-latest.jar' @@ -121,7 +121,7 @@ task uberJar(type: Jar) { manifest { attributes 'Implementation-Title': 'Gradle Jar File Example', 'Implementation-Version': project.version, - 'Main-Class': 'io.provs.entry.EntryKt' + 'Main-Class': 'io.provs.core.entry.EntryKt' } archiveClassifier = 'uber' } @@ -142,7 +142,7 @@ task uberJarLatest(type: Jar) { manifest { attributes 'Implementation-Title': 'Gradle Jar File Example', 'Implementation-Version': project.version, - 'Main-Class': 'io.provs.entry.EntryKt' + 'Main-Class': 'io.provs.core.entry.EntryKt' } archiveFileName = 'provs-latest.jar' } diff --git a/src/main/kotlin/io/provs/Prov.kt b/src/main/kotlin/io/provs/core/Prov.kt similarity index 98% rename from src/main/kotlin/io/provs/Prov.kt rename to src/main/kotlin/io/provs/core/Prov.kt index e5e19aa..46203d2 100644 --- a/src/main/kotlin/io/provs/Prov.kt +++ b/src/main/kotlin/io/provs/core/Prov.kt @@ -1,14 +1,13 @@ -package io.provs +package io.provs.core -import io.provs.platforms.SHELL -import io.provs.platforms.UbuntuProv -import io.provs.platforms.WinProv -import io.provs.processors.LocalProcessor -import io.provs.processors.Processor +import io.provs.core.platforms.SHELL +import io.provs.core.platforms.UbuntuProv +import io.provs.core.platforms.WinProv +import io.provs.core.processors.LocalProcessor +import io.provs.core.processors.Processor import org.slf4j.LoggerFactory - enum class ProgressType { NONE, DOTS, BASIC, FULL_LOG } enum class ResultMode { NONE, LAST, ALL, FAILEXIT } enum class OS { WINDOWS, LINUX } @@ -37,7 +36,7 @@ open class Prov protected constructor( private lateinit var defaultProvInstance: Prov fun defaultInstance(platform: String? = null): Prov { - return if (::defaultProvInstance.isInitialized) { + return if (Factory::defaultProvInstance.isInitialized) { defaultProvInstance } else { defaultProvInstance = newInstance(platform = platform, name = "default instance") diff --git a/src/main/kotlin/io/provs/ProvResult.kt b/src/main/kotlin/io/provs/core/ProvResult.kt similarity index 95% rename from src/main/kotlin/io/provs/ProvResult.kt rename to src/main/kotlin/io/provs/core/ProvResult.kt index 56837b3..8975026 100644 --- a/src/main/kotlin/io/provs/ProvResult.kt +++ b/src/main/kotlin/io/provs/core/ProvResult.kt @@ -1,4 +1,4 @@ -package io.provs +package io.provs.core data class ProvResult(val success: Boolean, @@ -16,6 +16,7 @@ data class ProvResult(val success: Boolean, (exception?.run { " Exception: " + toString() } ?: "") } + @Suppress("unused") fun toShortString() : String { return "ProvResult:: ${if (success) "Succeeded" else "FAILED"} -- " + if (!success) diff --git a/src/main/kotlin/io/provs/Secret.kt b/src/main/kotlin/io/provs/core/Secret.kt similarity index 68% rename from src/main/kotlin/io/provs/Secret.kt rename to src/main/kotlin/io/provs/core/Secret.kt index e9eceeb..a362f11 100644 --- a/src/main/kotlin/io/provs/Secret.kt +++ b/src/main/kotlin/io/provs/core/Secret.kt @@ -1,4 +1,4 @@ -package io.provs +package io.provs.core open class Secret(private val value: String) { diff --git a/src/main/kotlin/io/provs/Utils.kt b/src/main/kotlin/io/provs/core/Utils.kt similarity index 91% rename from src/main/kotlin/io/provs/Utils.kt rename to src/main/kotlin/io/provs/core/Utils.kt index e5b475e..4e741d7 100644 --- a/src/main/kotlin/io/provs/Utils.kt +++ b/src/main/kotlin/io/provs/core/Utils.kt @@ -1,9 +1,10 @@ -package io.provs +package io.provs.core -import io.provs.docker.provideContainer -import io.provs.processors.ContainerStartMode -import io.provs.processors.ContainerUbuntuHostProcessor -import io.provs.processors.RemoteProcessor +import io.provs.core.docker.provideContainer +import io.provs.core.processors.ContainerStartMode +import io.provs.core.processors.ContainerUbuntuHostProcessor +import io.provs.core.processors.RemoteProcessor +import io.provs.core.tags.Api import java.io.File import java.net.InetAddress @@ -70,7 +71,7 @@ fun local(): Prov { * If password is null, connection is done by ssh-key. * Platform (Linux, Windows) must be provided if different from local platform. */ -@Suppress("unused") // used by other libraries resp. KotlinScript +@Api // used by other libraries resp. KotlinScript fun remote(host: String, remoteUser: String, password: Secret? = null, platform: String? = null): Prov { require(host.isNotEmpty(), { "Host must not be empty." }) require(remoteUser.isNotEmpty(), { "Remote user must not be empty." }) @@ -85,7 +86,7 @@ fun remote(host: String, remoteUser: String, password: Secret? = null, platform: * parameter useExistingContainer is set to true. * If a new container needs to be created, on Linux systems the image _ubuntu_ is used. */ -@Suppress("unused") // used by other libraries resp. KotlinScript +@Api // used by other libraries resp. KotlinScript fun docker(containerName: String = "provs_default", useExistingContainer: Boolean = true): Prov { val os = System.getProperty("os.name") diff --git a/src/main/kotlin/io/provs/docker/HostDocker.kt b/src/main/kotlin/io/provs/core/docker/HostDocker.kt similarity index 90% rename from src/main/kotlin/io/provs/docker/HostDocker.kt rename to src/main/kotlin/io/provs/core/docker/HostDocker.kt index 6dc2c5e..32e19c8 100644 --- a/src/main/kotlin/io/provs/docker/HostDocker.kt +++ b/src/main/kotlin/io/provs/core/docker/HostDocker.kt @@ -1,12 +1,11 @@ -package io.provs.docker - -import io.provs.Prov -import io.provs.ProvResult -import io.provs.docker.images.DockerImage -import io.provs.docker.platforms.* -import io.provs.platforms.UbuntuProv -import io.provs.processors.ContainerStartMode +package io.provs.core.docker +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.docker.dockerimages.DockerImage +import io.provs.core.docker.platforms.* +import io.provs.core.platforms.UbuntuProv +import io.provs.core.processors.ContainerStartMode /** * Builds a docker image if not yet existing. @@ -19,7 +18,6 @@ fun Prov.dockerProvideImage(image: DockerImage, skipIfExisting: Boolean = true, } } - /** * Returns true if the specified docker image exists. */ @@ -31,7 +29,6 @@ fun Prov.dockerImageExists(imageName: String, sudo: Boolean = true) : Boolean { } } - /** * Creates and runs a new container with name _containerName_ for image _imageName_ if not yet existing. * In case the container already exists, the parameter _startMode_ determines @@ -75,8 +72,6 @@ fun Prov.runContainer( } - - fun Prov.exitAndRmContainer( containerName: String, sudo: Boolean = true diff --git a/src/main/kotlin/io/provs/docker/images/DockerImages.kt b/src/main/kotlin/io/provs/core/docker/dockerimages/DockerImages.kt similarity index 81% rename from src/main/kotlin/io/provs/docker/images/DockerImages.kt rename to src/main/kotlin/io/provs/core/docker/dockerimages/DockerImages.kt index 1fe8423..8ebb58e 100644 --- a/src/main/kotlin/io/provs/docker/images/DockerImages.kt +++ b/src/main/kotlin/io/provs/core/docker/dockerimages/DockerImages.kt @@ -1,4 +1,4 @@ -package io.provs.docker.images +package io.provs.core.docker.dockerimages interface DockerImage { @@ -7,9 +7,8 @@ interface DockerImage { } /** - * Dockerfile based ubuntu image added by a non-root default user. + * Provides a docker image based on ubuntu additionally with a non-root default user and sudo isntalled */ -@Suppress("unused") // used by other libraries class UbuntuPlusUser(private val userName: String = "testuser") : DockerImage { override fun imageName(): String { diff --git a/src/main/kotlin/io/provs/docker/platforms/UbuntuHostDocker.kt b/src/main/kotlin/io/provs/core/docker/platforms/UbuntuHostDocker.kt similarity index 87% rename from src/main/kotlin/io/provs/docker/platforms/UbuntuHostDocker.kt rename to src/main/kotlin/io/provs/core/docker/platforms/UbuntuHostDocker.kt index 53ef4f3..b10c6b9 100644 --- a/src/main/kotlin/io/provs/docker/platforms/UbuntuHostDocker.kt +++ b/src/main/kotlin/io/provs/core/docker/platforms/UbuntuHostDocker.kt @@ -1,15 +1,15 @@ -package io.provs.docker.platforms - -import io.provs.ProvResult -import io.provs.docker.containerRuns -import io.provs.docker.dockerImageExists -import io.provs.docker.exitAndRmContainer -import io.provs.docker.images.DockerImage -import io.provs.escapeSingleQuote -import io.provs.fileSeparator -import io.provs.hostUserHome -import io.provs.platforms.UbuntuProv -import io.provs.processors.ContainerStartMode +package io.provs.core.docker.platforms + +import io.provs.core.ProvResult +import io.provs.core.docker.containerRuns +import io.provs.core.docker.dockerImageExists +import io.provs.core.docker.exitAndRmContainer +import io.provs.core.docker.dockerimages.DockerImage +import io.provs.core.escapeSingleQuote +import io.provs.core.fileSeparator +import io.provs.core.hostUserHome +import io.provs.core.platforms.UbuntuProv +import io.provs.core.processors.ContainerStartMode fun UbuntuProv.provideContainerPlatform( diff --git a/src/main/kotlin/io/provs/entry/Entry.kt b/src/main/kotlin/io/provs/core/entry/Entry.kt similarity index 98% rename from src/main/kotlin/io/provs/entry/Entry.kt rename to src/main/kotlin/io/provs/core/entry/Entry.kt index eab0bf9..e150c08 100644 --- a/src/main/kotlin/io/provs/entry/Entry.kt +++ b/src/main/kotlin/io/provs/core/entry/Entry.kt @@ -1,4 +1,4 @@ -package io.provs.entry +package io.provs.core.entry /** * Calls a static method of a class. diff --git a/src/main/kotlin/io/provs/platforms/UbuntuProv.kt b/src/main/kotlin/io/provs/core/platforms/UbuntuProv.kt similarity index 75% rename from src/main/kotlin/io/provs/platforms/UbuntuProv.kt rename to src/main/kotlin/io/provs/core/platforms/UbuntuProv.kt index 514afbc..080a8ba 100644 --- a/src/main/kotlin/io/provs/platforms/UbuntuProv.kt +++ b/src/main/kotlin/io/provs/core/platforms/UbuntuProv.kt @@ -1,17 +1,17 @@ -package io.provs.platforms +package io.provs.core.platforms -import io.provs.ProgressType -import io.provs.Prov -import io.provs.ProvResult -import io.provs.escapeAndEncloseByDoubleQuoteForShell -import io.provs.processors.LocalProcessor -import io.provs.processors.Processor +import io.provs.core.ProgressType +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.escapeAndEncloseByDoubleQuoteForShell +import io.provs.core.processors.LocalProcessor +import io.provs.core.processors.Processor const val SHELL = "/bin/bash" class UbuntuProv internal constructor(processor : Processor = LocalProcessor(), name: String? = null, progressType: ProgressType) - : Prov (processor, name, progressType) { + : Prov(processor, name, progressType) { override fun cmd(cmd: String, dir: String?, sudo: Boolean) : ProvResult = def { xec(SHELL, "-c", commandWithDirAndSudo(cmd, dir, sudo)) diff --git a/src/main/kotlin/io/provs/platforms/WinProv.kt b/src/main/kotlin/io/provs/core/platforms/WinProv.kt similarity index 75% rename from src/main/kotlin/io/provs/platforms/WinProv.kt rename to src/main/kotlin/io/provs/core/platforms/WinProv.kt index 7a87201..3cb2786 100644 --- a/src/main/kotlin/io/provs/platforms/WinProv.kt +++ b/src/main/kotlin/io/provs/core/platforms/WinProv.kt @@ -1,14 +1,14 @@ -package io.provs.platforms +package io.provs.core.platforms -import io.provs.ProgressType -import io.provs.Prov -import io.provs.ProvResult -import io.provs.processors.LocalProcessor -import io.provs.processors.Processor +import io.provs.core.ProgressType +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.processors.LocalProcessor +import io.provs.core.processors.Processor class WinProv internal constructor(processor : Processor = LocalProcessor(), name: String? = null, progressType: ProgressType) - : Prov (processor, name, progressType) { + : Prov(processor, name, progressType) { private val SHELL = "cmd.exe" diff --git a/src/main/kotlin/io/provs/processors/ContainerUbuntuHostProcessor.kt b/src/main/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessor.kt similarity index 84% rename from src/main/kotlin/io/provs/processors/ContainerUbuntuHostProcessor.kt rename to src/main/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessor.kt index 425fc97..a06b370 100644 --- a/src/main/kotlin/io/provs/processors/ContainerUbuntuHostProcessor.kt +++ b/src/main/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessor.kt @@ -1,10 +1,11 @@ -package io.provs.processors +package io.provs.core.processors -import io.provs.ProgressType -import io.provs.Prov -import io.provs.docker.provideContainer -import io.provs.escapeAndEncloseByDoubleQuoteForShell -import io.provs.platforms.SHELL +import io.provs.core.ProgressType +import io.provs.core.Prov +import io.provs.core.docker.provideContainer +import io.provs.core.escapeAndEncloseByDoubleQuoteForShell +import io.provs.core.platforms.SHELL +import io.provs.core.tags.Api enum class ContainerStartMode { USE_RUNNING_ELSE_CREATE, @@ -19,12 +20,12 @@ enum class ContainerEndMode { open class ContainerUbuntuHostProcessor( private val containerName: String = "default_provs_container", - @Suppress("unused") // suppress false positive warning + @Api // suppress false positive warning private val dockerImage: String = "ubuntu", - @Suppress("unused") // suppress false positive warning + @Api // suppress false positive warning private val startMode: ContainerStartMode = ContainerStartMode.USE_RUNNING_ELSE_CREATE, private val endMode: ContainerEndMode = ContainerEndMode.KEEP_RUNNING, - @Suppress("unused") // suppress false positive warning + @Api // suppress false positive warning private val sudo: Boolean = true ) : Processor { private val dockerCmd = if (sudo) "sudo docker " else "docker " diff --git a/src/main/kotlin/io/provs/processors/LocalProcessor.kt b/src/main/kotlin/io/provs/core/processors/LocalProcessor.kt similarity index 91% rename from src/main/kotlin/io/provs/processors/LocalProcessor.kt rename to src/main/kotlin/io/provs/core/processors/LocalProcessor.kt index d0f8505..8b8c3f9 100644 --- a/src/main/kotlin/io/provs/processors/LocalProcessor.kt +++ b/src/main/kotlin/io/provs/core/processors/LocalProcessor.kt @@ -1,6 +1,6 @@ -package io.provs.processors +package io.provs.core.processors -import io.provs.escapeNewline +import io.provs.core.escapeNewline import org.slf4j.LoggerFactory import java.io.File import java.io.IOException @@ -17,7 +17,7 @@ open class LocalProcessor : Processor { @Suppress("JAVA_CLASS_ON_COMPANION") private val log = LoggerFactory.getLogger(javaClass.enclosingClass) - var charset = if (getOsName().contains("Windows")) Charset.forName("Windows-1252") else Charset.defaultCharset() + var charset: Charset = if (getOsName().contains("Windows")) Charset.forName("Windows-1252") else Charset.defaultCharset() init { log.info("os.name: " + getOsName()) log.info("user.home: " + System.getProperty("user.home")) diff --git a/src/main/kotlin/io/provs/processors/PrintOnlyProcessor.kt b/src/main/kotlin/io/provs/core/processors/PrintOnlyProcessor.kt similarity index 93% rename from src/main/kotlin/io/provs/processors/PrintOnlyProcessor.kt rename to src/main/kotlin/io/provs/core/processors/PrintOnlyProcessor.kt index 27638d6..481d235 100644 --- a/src/main/kotlin/io/provs/processors/PrintOnlyProcessor.kt +++ b/src/main/kotlin/io/provs/core/processors/PrintOnlyProcessor.kt @@ -1,4 +1,4 @@ -package io.provs.processors +package io.provs.core.processors @Suppress("unused") // used externally diff --git a/src/main/kotlin/io/provs/processors/Processor.kt b/src/main/kotlin/io/provs/core/processors/Processor.kt similarity index 89% rename from src/main/kotlin/io/provs/processors/Processor.kt rename to src/main/kotlin/io/provs/core/processors/Processor.kt index e13b31f..be6c3e2 100644 --- a/src/main/kotlin/io/provs/processors/Processor.kt +++ b/src/main/kotlin/io/provs/core/processors/Processor.kt @@ -1,10 +1,12 @@ -package io.provs.processors +package io.provs.core.processors interface Processor { fun x(vararg args: String): ProcessResult fun xNoLog(vararg args: String): ProcessResult - fun close() {} + fun close() { + // no action needed for most processors; if action is needed when closing, this method must be overwritten in the subclass + } } diff --git a/src/main/kotlin/io/provs/processors/RemoteUbuntuProcessor.kt b/src/main/kotlin/io/provs/core/processors/RemoteUbuntuProcessor.kt similarity index 95% rename from src/main/kotlin/io/provs/processors/RemoteUbuntuProcessor.kt rename to src/main/kotlin/io/provs/core/processors/RemoteUbuntuProcessor.kt index 72bc930..668e286 100644 --- a/src/main/kotlin/io/provs/processors/RemoteUbuntuProcessor.kt +++ b/src/main/kotlin/io/provs/core/processors/RemoteUbuntuProcessor.kt @@ -1,9 +1,9 @@ -package io.provs.processors +package io.provs.core.processors -import io.provs.Secret -import io.provs.escapeAndEncloseByDoubleQuoteForShell -import io.provs.escapeNewline -import io.provs.platforms.SHELL +import io.provs.core.Secret +import io.provs.core.escapeAndEncloseByDoubleQuoteForShell +import io.provs.core.escapeNewline +import io.provs.core.platforms.SHELL import net.schmizz.sshj.SSHClient import net.schmizz.sshj.connection.channel.direct.Session import net.schmizz.sshj.connection.channel.direct.Session.Command @@ -80,7 +80,6 @@ class RemoteProcessor(ip: InetAddress, user: String, password: Secret? = null) : else args.joinToString(separator = " ") - var session: Session? = null try { diff --git a/src/main/kotlin/io/provs/core/tags/Api.kt b/src/main/kotlin/io/provs/core/tags/Api.kt new file mode 100644 index 0000000..9eac2dc --- /dev/null +++ b/src/main/kotlin/io/provs/core/tags/Api.kt @@ -0,0 +1,6 @@ +package io.provs.core.tags + +@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION) +@Retention(AnnotationRetention.SOURCE) +@Suppress("unused") // element is offered to be used externally +annotation class Api \ No newline at end of file diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/demos/HelloWorld.kt b/src/main/kotlin/io/provs/ubuntu/extensions/demos/HelloWorld.kt index 87910bf..fdf4b6e 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/demos/HelloWorld.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/demos/HelloWorld.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.demos -import io.provs.Prov -import io.provs.local +import io.provs.core.Prov +import io.provs.core.local fun Prov.helloWorld() = def { diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/demos/SystemInfos.kt b/src/main/kotlin/io/provs/ubuntu/extensions/demos/SystemInfos.kt index dbb70e9..53537eb 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/demos/SystemInfos.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/demos/SystemInfos.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.demos -import io.provs.* +import io.provs.core.* /** diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionMonitoring.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionMonitoring.kt index 4efd560..3e6e926 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionMonitoring.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionMonitoring.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.server_compounds.monitoring -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.extensions.server_software.nginx.base.NginxConf import io.provs.ubuntu.extensions.server_software.nginx.base.nginxHttpConf import io.provs.ubuntu.extensions.server_software.nginx.provisionNginxStandAlone diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionNginxAndMonitoring.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionNginxAndMonitoring.kt index d200608..03b7e5d 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionNginxAndMonitoring.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_compounds/monitoring/ProvisionNginxAndMonitoring.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.server_compounds.monitoring -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.extensions.server_software.nginx.base.NginxConf import io.provs.ubuntu.extensions.server_software.nginx.base.nginxAddLocation import io.provs.ubuntu.extensions.server_software.nginx.base.nginxCreateSelfSignedCertificate diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/certbot/ProvisionCertbot.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/certbot/ProvisionCertbot.kt index b77a033..259cb01 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/certbot/ProvisionCertbot.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/certbot/ProvisionCertbot.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.server_software.certbot -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.fileExists import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewall.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewall.kt index 5c15732..2b03736 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewall.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewall.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.server_software.firewall -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/base/FirewallBackup.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/base/FirewallBackup.kt index fa416e3..9f5c081 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/base/FirewallBackup.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/firewall/base/FirewallBackup.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.server_software.firewall.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import java.time.LocalDateTime import java.time.format.DateTimeFormatter diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nexus/ProvisionNexus.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nexus/ProvisionNexus.kt index 5fb50c4..8d7c91b 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nexus/ProvisionNexus.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nexus/ProvisionNexus.kt @@ -1,9 +1,9 @@ package io.provs.ubuntu.extensions.server_software.nexus -import io.provs.Prov -import io.provs.ProvResult -import io.provs.docker.containerRuns -import io.provs.remote +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.docker.containerRuns +import io.provs.core.remote import io.provs.ubuntu.filesystem.base.fileExists import io.provs.ubuntu.install.base.aptInstall import io.provs.ubuntu.user.base.createUser diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginx.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginx.kt index 6407a33..a19edb6 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginx.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginx.kt @@ -1,8 +1,8 @@ package io.provs.ubuntu.extensions.server_software.nginx -import io.provs.Prov -import io.provs.ProvResult -import io.provs.remote +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.remote import io.provs.ubuntu.filesystem.base.createFile import io.provs.ubuntu.filesystem.base.fileExists import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/BasicAuth.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/BasicAuth.kt index 9bcd1ba..9b88ad7 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/BasicAuth.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/BasicAuth.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.server_software.nginx.base -import io.provs.Prov -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.Secret import io.provs.ubuntu.install.base.aptInstall fun Prov.nginxAddBasicAuth(user: String, password: Secret) = requireAll { diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/Locations.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/Locations.kt index ced12b7..f25f4af 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/Locations.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/Locations.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.server_software.nginx.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.* diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/SelfSignedCertificate.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/SelfSignedCertificate.kt index b4347d0..6c29cb1 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/SelfSignedCertificate.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/SelfSignedCertificate.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.server_software.nginx.base -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.filesystem.base.createDirs import io.provs.ubuntu.extensions.server_software.nginx.provisionNginxStandAlone diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/ProvisionPrometheus.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/ProvisionPrometheus.kt index 97ec14e..76391e5 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/ProvisionPrometheus.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/ProvisionPrometheus.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.server_software.prometheus -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.extensions.server_software.prometheus.base.* /** diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/NodeExporter.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/NodeExporter.kt index 7d4317c..31d5e23 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/NodeExporter.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/NodeExporter.kt @@ -1,7 +1,6 @@ package io.provs.ubuntu.extensions.server_software.prometheus.base -import io.provs.Prov -import io.provs.local +import io.provs.core.Prov import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createFile import io.provs.ubuntu.filesystem.base.fileContainsText diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/Prometheus.kt b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/Prometheus.kt index f84e89f..98165f3 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/Prometheus.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/server_software/prometheus/base/Prometheus.kt @@ -1,8 +1,7 @@ package io.provs.ubuntu.extensions.server_software.prometheus.base -import io.provs.Prov -import io.provs.docker.containerRuns -import io.provs.local +import io.provs.core.Prov +import io.provs.core.docker.containerRuns import io.provs.ubuntu.filesystem.base.createDirs import io.provs.ubuntu.filesystem.base.createFile import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplace.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplace.kt index df3addb..800661c 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplace.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplace.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace -import io.provs.* -import io.provs.processors.RemoteProcessor +import io.provs.core.* +import io.provs.core.processors.RemoteProcessor import io.provs.ubuntu.extensions.workplace.base.* import io.provs.ubuntu.git.provisionGit import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Docker.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Docker.kt index 9e6e237..66a4998 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Docker.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Docker.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.install.base.aptInstall fun Prov.installDocker() = def { diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Fakturama.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Fakturama.kt index 9ce4f52..00a9077 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Fakturama.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Fakturama.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.web.base.downloadFromURL diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Gopass.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Gopass.kt index fe5334c..0a651a0 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Gopass.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Gopass.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createDirs import io.provs.ubuntu.filesystem.base.createFile @@ -30,11 +30,12 @@ fun Prov.installGopass(version: String = "1.12.7", enforceVersion: Boolean = fal fun Prov.configureGopass(gopassRootFolder: String? = null) = def { - val gopassRootFolderNonNull = (gopassRootFolder ?: userHome()) + ".password-store" + val defaultRootFolder = userHome() + ".password-store" + val rootFolder = gopassRootFolder ?: defaultRootFolder // use default - createDir(gopassRootFolderNonNull) - createDirs(".config/gopass", "~/") - createFile("~/.config/gopass/config.yml", gopassConfig(gopassRootFolderNonNull)) + createDir(rootFolder) + createDirs(".config/gopass") + createFile("~/.config/gopass/config.yml", gopassConfig(rootFolder)) } diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridge.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridge.kt index 113ec83..3223f74 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridge.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridge.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createDirs import io.provs.ubuntu.filesystem.base.userHome diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/NoSwappiness.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/NoSwappiness.kt index c066f79..f6d159c 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/NoSwappiness.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/NoSwappiness.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.filesystem.base.addTextToFile import java.io.File diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Redshift.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Redshift.kt index 9bccfa4..1bdb1f9 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Redshift.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Redshift.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov +import io.provs.core.Prov import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createFile import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VSCode.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VSCode.kt index acb88a2..651cd14 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VSCode.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VSCode.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VirtualBoxGuest.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VirtualBoxGuest.kt index 611ff60..e23d36a 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VirtualBoxGuest.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/VirtualBoxGuest.kt @@ -1,12 +1,8 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult -import io.provs.remote +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall -import io.provs.ubuntu.secret.secretSources.GopassSecretSource -import io.provs.ubuntu.secret.secretSources.PlainSecretSource -import io.provs.ubuntu.secret.secretSources.PromptSecretSource import io.provs.ubuntu.user.base.whoami fun Prov.installVirtualBoxGuestAdditions() = def { diff --git a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Zim.kt b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Zim.kt index 39815e0..1a8a5a2 100644 --- a/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Zim.kt +++ b/src/main/kotlin/io/provs/ubuntu/extensions/workplace/base/Zim.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall import io.provs.ubuntu.install.base.aptInstallFromPpa import io.provs.ubuntu.install.base.isPackageInstalled diff --git a/src/main/kotlin/io/provs/ubuntu/filesystem/base/Filesystem.kt b/src/main/kotlin/io/provs/ubuntu/filesystem/base/Filesystem.kt index ddd8bd6..2f04e90 100644 --- a/src/main/kotlin/io/provs/ubuntu/filesystem/base/Filesystem.kt +++ b/src/main/kotlin/io/provs/ubuntu/filesystem/base/Filesystem.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.filesystem.base -import io.provs.* -import io.provs.platforms.SHELL +import io.provs.core.* +import io.provs.core.platforms.SHELL import java.io.File diff --git a/src/main/kotlin/io/provs/ubuntu/git/ProvisionGit.kt b/src/main/kotlin/io/provs/ubuntu/git/ProvisionGit.kt index 5376b30..a745f51 100644 --- a/src/main/kotlin/io/provs/ubuntu/git/ProvisionGit.kt +++ b/src/main/kotlin/io/provs/ubuntu/git/ProvisionGit.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.git -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall diff --git a/src/main/kotlin/io/provs/ubuntu/git/base/Git.kt b/src/main/kotlin/io/provs/ubuntu/git/base/Git.kt index 8d85484..a2db092 100644 --- a/src/main/kotlin/io/provs/ubuntu/git/base/Git.kt +++ b/src/main/kotlin/io/provs/ubuntu/git/base/Git.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.git.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.addTextToFile import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.dirExists diff --git a/src/main/kotlin/io/provs/ubuntu/install/base/Install.kt b/src/main/kotlin/io/provs/ubuntu/install/base/Install.kt index 197b5bc..1cefe72 100644 --- a/src/main/kotlin/io/provs/ubuntu/install/base/Install.kt +++ b/src/main/kotlin/io/provs/ubuntu/install/base/Install.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.install.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult private var aptInit = false diff --git a/src/main/kotlin/io/provs/ubuntu/keys/ProvisionKeys.kt b/src/main/kotlin/io/provs/ubuntu/keys/ProvisionKeys.kt index 249145e..0dbe250 100644 --- a/src/main/kotlin/io/provs/ubuntu/keys/ProvisionKeys.kt +++ b/src/main/kotlin/io/provs/ubuntu/keys/ProvisionKeys.kt @@ -1,8 +1,8 @@ package io.provs.ubuntu.keys -import io.provs.Prov -import io.provs.ProvResult -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.Secret import io.provs.ubuntu.keys.base.configureGpgKeys import io.provs.ubuntu.keys.base.configureSshKeys import io.provs.ubuntu.secret.SecretSourceType diff --git a/src/main/kotlin/io/provs/ubuntu/keys/base/Gpg.kt b/src/main/kotlin/io/provs/ubuntu/keys/base/Gpg.kt index 41ae91f..4eb6ac8 100644 --- a/src/main/kotlin/io/provs/ubuntu/keys/base/Gpg.kt +++ b/src/main/kotlin/io/provs/ubuntu/keys/base/Gpg.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.keys.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createFile import io.provs.ubuntu.filesystem.base.createSecretFile diff --git a/src/main/kotlin/io/provs/ubuntu/keys/base/Ssh.kt b/src/main/kotlin/io/provs/ubuntu/keys/base/Ssh.kt index e33e82c..92cb2ba 100644 --- a/src/main/kotlin/io/provs/ubuntu/keys/base/Ssh.kt +++ b/src/main/kotlin/io/provs/ubuntu/keys/base/Ssh.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.keys.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.filesystem.base.createDir import io.provs.ubuntu.filesystem.base.createSecretFile import io.provs.ubuntu.keys.KeyPair diff --git a/src/main/kotlin/io/provs/ubuntu/secret/SecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/SecretSource.kt index 03628b6..e74ee58 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/SecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/SecretSource.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.secret -import io.provs.Secret +import io.provs.core.Secret import io.provs.ubuntu.secret.secretSources.* import kotlinx.serialization.Serializable diff --git a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/FileSecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/FileSecretSource.kt index 6c9f3c5..0d08a59 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/FileSecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/FileSecretSource.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.secret.secretSources -import io.provs.Prov -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.Secret import io.provs.ubuntu.secret.SecretSource diff --git a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/GopassSecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/GopassSecretSource.kt index a2a77ce..c28b21f 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/GopassSecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/GopassSecretSource.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.secret.secretSources -import io.provs.Prov -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.Secret import io.provs.ubuntu.secret.SecretSource diff --git a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PassSecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PassSecretSource.kt index 535cda0..8a15544 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PassSecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PassSecretSource.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.secret.secretSources -import io.provs.Prov -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.Secret import io.provs.ubuntu.secret.SecretSource diff --git a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PlainSecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PlainSecretSource.kt index 8854e72..1bf4f64 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PlainSecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PlainSecretSource.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.secret.secretSources -import io.provs.Secret +import io.provs.core.Secret import io.provs.ubuntu.secret.SecretSource diff --git a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PromptSecretSource.kt b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PromptSecretSource.kt index e5cfe37..5eca317 100644 --- a/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PromptSecretSource.kt +++ b/src/main/kotlin/io/provs/ubuntu/secret/secretSources/PromptSecretSource.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.secret.secretSources -import io.provs.Secret +import io.provs.core.Secret import io.provs.ubuntu.secret.SecretSource import java.awt.FlowLayout import javax.swing.* diff --git a/src/main/kotlin/io/provs/ubuntu/user/base/User.kt b/src/main/kotlin/io/provs/ubuntu/user/base/User.kt index 20ae5c4..13e43b5 100644 --- a/src/main/kotlin/io/provs/ubuntu/user/base/User.kt +++ b/src/main/kotlin/io/provs/ubuntu/user/base/User.kt @@ -1,9 +1,9 @@ package io.provs.ubuntu.user.base -import io.provs.Prov -import io.provs.ProvResult -import io.provs.Secret -import io.provs.processors.RemoteProcessor +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.Secret +import io.provs.core.processors.RemoteProcessor import io.provs.ubuntu.filesystem.base.createDirs import io.provs.ubuntu.filesystem.base.fileExists import io.provs.ubuntu.git.provisionGit diff --git a/src/main/kotlin/io/provs/ubuntu/utils/Utils.kt b/src/main/kotlin/io/provs/ubuntu/utils/Utils.kt index 8dc558e..1221cf5 100644 --- a/src/main/kotlin/io/provs/ubuntu/utils/Utils.kt +++ b/src/main/kotlin/io/provs/ubuntu/utils/Utils.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.utils -import io.provs.escapeBackslash -import io.provs.escapeDoubleQuote +import io.provs.core.escapeBackslash +import io.provs.core.escapeDoubleQuote // todo: investigate to use .escapeAndEncloseByDoubleQuoteForShell() or similar instead (?) diff --git a/src/main/kotlin/io/provs/ubuntu/web/base/Web.kt b/src/main/kotlin/io/provs/ubuntu/web/base/Web.kt index bd2e270..cd36afe 100644 --- a/src/main/kotlin/io/provs/ubuntu/web/base/Web.kt +++ b/src/main/kotlin/io/provs/ubuntu/web/base/Web.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.web.base -import io.provs.Prov -import io.provs.ProvResult +import io.provs.core.Prov +import io.provs.core.ProvResult import io.provs.ubuntu.install.base.aptInstall import io.provs.ubuntu.install.base.isPackageInstalled diff --git a/src/test/kotlin/io/provs/ProvTest.kt b/src/test/kotlin/io/provs/core/ProvTest.kt similarity index 99% rename from src/test/kotlin/io/provs/ProvTest.kt rename to src/test/kotlin/io/provs/core/ProvTest.kt index 4f3c748..2b94412 100644 --- a/src/test/kotlin/io/provs/ProvTest.kt +++ b/src/test/kotlin/io/provs/core/ProvTest.kt @@ -1,6 +1,6 @@ -package io.provs +package io.provs.core -import io.provs.docker.provideContainer +import io.provs.core.docker.provideContainer import io.provs.test.tags.ContainerTest import io.provs.test.tags.NonCi import io.provs.test.testLocal diff --git a/src/test/kotlin/io/provs/UtilsKtTest.kt b/src/test/kotlin/io/provs/core/UtilsKtTest.kt similarity index 97% rename from src/test/kotlin/io/provs/UtilsKtTest.kt rename to src/test/kotlin/io/provs/core/UtilsKtTest.kt index 005a968..1a551e2 100644 --- a/src/test/kotlin/io/provs/UtilsKtTest.kt +++ b/src/test/kotlin/io/provs/core/UtilsKtTest.kt @@ -1,4 +1,4 @@ -package io.provs +package io.provs.core import io.provs.test.defaultTestContainer import io.provs.test.tags.ContainerTest diff --git a/src/test/kotlin/io/provs/docker/platforms/UbuntuHostDockerKtTest.kt b/src/test/kotlin/io/provs/core/docker/platforms/UbuntuHostDockerKtTest.kt similarity index 78% rename from src/test/kotlin/io/provs/docker/platforms/UbuntuHostDockerKtTest.kt rename to src/test/kotlin/io/provs/core/docker/platforms/UbuntuHostDockerKtTest.kt index 4fec1ed..ad6927e 100644 --- a/src/test/kotlin/io/provs/docker/platforms/UbuntuHostDockerKtTest.kt +++ b/src/test/kotlin/io/provs/core/docker/platforms/UbuntuHostDockerKtTest.kt @@ -1,9 +1,9 @@ -package io.provs.docker.platforms +package io.provs.core.docker.platforms -import io.provs.ProvResult -import io.provs.docker.containerRuns -import io.provs.docker.exitAndRmContainer -import io.provs.docker.runContainer +import io.provs.core.ProvResult +import io.provs.core.docker.containerRuns +import io.provs.core.docker.exitAndRmContainer +import io.provs.core.docker.runContainer import io.provs.test.tags.NonCi import io.provs.test.testLocal import org.junit.jupiter.api.Assertions.assertEquals diff --git a/src/test/kotlin/io/provs/entry/EntryTest.kt b/src/test/kotlin/io/provs/core/entry/EntryTest.kt similarity index 83% rename from src/test/kotlin/io/provs/entry/EntryTest.kt rename to src/test/kotlin/io/provs/core/entry/EntryTest.kt index 193751b..96de239 100644 --- a/src/test/kotlin/io/provs/entry/EntryTest.kt +++ b/src/test/kotlin/io/provs/core/entry/EntryTest.kt @@ -1,4 +1,4 @@ -package io.provs.entry +package io.provs.core.entry import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals @@ -41,7 +41,7 @@ internal class EntryKtTest { @Test fun test_without_method_argument() { // when - main("io.provs.entry.EntryTestKt") + main("io.provs.core.entry.EntryTestKt") // then assertEquals("main is fun \n", outContent.toString()) @@ -50,7 +50,7 @@ internal class EntryKtTest { @Test fun test_method_main_without_args() { // when - main("io.provs.entry.EntryTestKt", "main") + main("io.provs.core.entry.EntryTestKt", "main") // then assertEquals("main is fun \n", outContent.toString()) @@ -59,7 +59,7 @@ internal class EntryKtTest { @Test fun test_named_method_without_args() { // when - main("io.provs.entry.EntryTestKt", "testfun") + main("io.provs.core.entry.EntryTestKt", "testfun") // then assertEquals("test is fun \n", outContent.toString()) @@ -68,7 +68,7 @@ internal class EntryKtTest { @Test fun test_method_main_with_args() { // when - main("io.provs.entry.EntryTestKt", "main", "arg1", "arg2") + main("io.provs.core.entry.EntryTestKt", "main", "arg1", "arg2") // then assertEquals("main is fun arg1 arg2\n", outContent.toString()) @@ -77,7 +77,7 @@ internal class EntryKtTest { @Test fun test_named_method_with_args() { // when - main("io.provs.entry.EntryTestKt", "testfun", "arg1", "arg2") + main("io.provs.core.entry.EntryTestKt", "testfun", "arg1", "arg2") // then assertEquals("test is fun arg1 arg2\n", outContent.toString()) diff --git a/src/test/kotlin/io/provs/platformTest/UbuntuProvTests.kt b/src/test/kotlin/io/provs/core/platformTest/UbuntuProvTests.kt similarity index 97% rename from src/test/kotlin/io/provs/platformTest/UbuntuProvTests.kt rename to src/test/kotlin/io/provs/core/platformTest/UbuntuProvTests.kt index d41ad16..18889d0 100644 --- a/src/test/kotlin/io/provs/platformTest/UbuntuProvTests.kt +++ b/src/test/kotlin/io/provs/core/platformTest/UbuntuProvTests.kt @@ -1,6 +1,6 @@ -package io.provs.platformTest +package io.provs.core.platformTest -import io.provs.Prov +import io.provs.core.Prov import io.provs.test.tags.NonCi import io.provs.test.testLocal import org.junit.jupiter.api.Test diff --git a/src/test/kotlin/io/provs/platformTest/WinProvTests.kt b/src/test/kotlin/io/provs/core/platformTest/WinProvTests.kt similarity index 93% rename from src/test/kotlin/io/provs/platformTest/WinProvTests.kt rename to src/test/kotlin/io/provs/core/platformTest/WinProvTests.kt index 54e9487..8c66f8a 100644 --- a/src/test/kotlin/io/provs/platformTest/WinProvTests.kt +++ b/src/test/kotlin/io/provs/core/platformTest/WinProvTests.kt @@ -1,6 +1,6 @@ -package io.provs.platformTest +package io.provs.core.platformTest -import io.provs.Prov +import io.provs.core.Prov import io.provs.test.testLocal import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/src/test/kotlin/io/provs/ContainerProcessorTest.kt b/src/test/kotlin/io/provs/core/processors/ContainerProcessorTest.kt similarity index 94% rename from src/test/kotlin/io/provs/ContainerProcessorTest.kt rename to src/test/kotlin/io/provs/core/processors/ContainerProcessorTest.kt index 36520a6..2825135 100644 --- a/src/test/kotlin/io/provs/ContainerProcessorTest.kt +++ b/src/test/kotlin/io/provs/core/processors/ContainerProcessorTest.kt @@ -1,5 +1,6 @@ -package io.provs +package io.provs.core.processors +import io.provs.core.newline import io.provs.test.defaultTestContainer import io.provs.test.tags.ContainerTest import org.junit.jupiter.api.Assertions.assertEquals diff --git a/src/test/kotlin/io/provs/processors/ContainerUbuntuHostProcessorTest.kt b/src/test/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessorTest.kt similarity index 91% rename from src/test/kotlin/io/provs/processors/ContainerUbuntuHostProcessorTest.kt rename to src/test/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessorTest.kt index fe270da..9b90099 100644 --- a/src/test/kotlin/io/provs/processors/ContainerUbuntuHostProcessorTest.kt +++ b/src/test/kotlin/io/provs/core/processors/ContainerUbuntuHostProcessorTest.kt @@ -1,6 +1,6 @@ -package io.provs.processors +package io.provs.core.processors -import io.provs.platforms.SHELL +import io.provs.core.platforms.SHELL import io.provs.test.DEFAULT_START_MODE_TEST_CONTAINER import io.provs.test.tags.ContainerTest import io.provs.test.testDockerWithSudo diff --git a/src/test/kotlin/io/provs/LocalProcessorTest.kt b/src/test/kotlin/io/provs/core/processors/LocalProcessorTest.kt similarity index 90% rename from src/test/kotlin/io/provs/LocalProcessorTest.kt rename to src/test/kotlin/io/provs/core/processors/LocalProcessorTest.kt index 1a4a30a..65284ae 100644 --- a/src/test/kotlin/io/provs/LocalProcessorTest.kt +++ b/src/test/kotlin/io/provs/core/processors/LocalProcessorTest.kt @@ -1,5 +1,9 @@ -package io.provs +package io.provs.core.processors +import io.provs.core.Prov +import io.provs.core.escapeAndEncloseByDoubleQuoteForShell +import io.provs.core.escapeProcentForPrintf +import io.provs.core.escapeSingleQuoteForShell import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test @@ -21,7 +25,7 @@ internal class LocalProcessorTest { // then assert(res.success) - assert(res.out == text)//"abc123!§\\$%&/\"\\äöü'") + assert(res.out == text) } diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewallKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewallKtTest.kt index 3704bc6..3497df7 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewallKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/firewall/ProvisionFirewallKtTest.kt @@ -1,35 +1,23 @@ package io.provs.ubuntu.extensions.server_software.firewall -import io.provs.Prov - -import io.provs.docker.dockerProvideImage -import io.provs.docker.exitAndRmContainer -import io.provs.docker.images.UbuntuPlusUser -import io.provs.local -import io.provs.processors.ContainerEndMode -import io.provs.processors.ContainerStartMode -import io.provs.processors.ContainerUbuntuHostProcessor +import io.provs.core.Prov +import io.provs.core.docker.dockerProvideImage +import io.provs.core.docker.dockerimages.UbuntuPlusUser +import io.provs.core.docker.exitAndRmContainer +import io.provs.core.local +import io.provs.core.processors.ContainerEndMode +import io.provs.core.processors.ContainerStartMode +import io.provs.core.processors.ContainerUbuntuHostProcessor +import io.provs.test.tags.NonCi import io.provs.ubuntu.install.base.aptInstall import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test internal class ProvisionFirewallKtTest { @Test - @Disabled - fun provisionFirewall() { - // todo - } - - @Test - @Disabled - fun resetFirewall() { - // todo - } - - @Test + @NonCi fun configureFirewall() { // given val dockerImage = UbuntuPlusUser() diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginxKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginxKtTest.kt index eb55cb7..060df51 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginxKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/ProvisionNginxKtTest.kt @@ -1,6 +1,7 @@ package io.provs.ubuntu.extensions.server_software.nginx import io.provs.test.defaultTestContainer +import io.provs.test.tags.NonCi import io.provs.ubuntu.filesystem.base.replaceTextInFile import io.provs.ubuntu.install.base.aptInstall import io.provs.ubuntu.extensions.server_software.nginx.base.* @@ -12,6 +13,7 @@ import org.junit.jupiter.api.Test internal class ProvisionNginxKtTest { @Test + @NonCi fun provisionNginxStandAlone_customConfig() { // given val a = defaultTestContainer() @@ -40,6 +42,7 @@ internal class ProvisionNginxKtTest { } @Test + @NonCi fun provisionNginxStandAlone_defaultConfig() { // given val a = defaultTestContainer() @@ -54,6 +57,7 @@ internal class ProvisionNginxKtTest { } @Test + @NonCi fun provisionNginxStandAlone_sslConfig() { // given val a = defaultTestContainer() diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/LocationsKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/LocationsKtTest.kt index c37eaf3..ebefc8e 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/LocationsKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/server_software/nginx/base/LocationsKtTest.kt @@ -8,10 +8,12 @@ import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import io.provs.test.defaultTestContainer +import io.provs.test.tags.NonCi internal class LocationsKtTest { @Test + @NonCi fun nginxIncludeLocationFolders() { // given val a = defaultTestContainer() diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplaceKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplaceKtTest.kt index a15c67b..c995867 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplaceKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/ProvisionWorkplaceKtTest.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.extensions.workplace -import io.provs.Password +import io.provs.core.Password import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test import io.provs.test.defaultTestContainer diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridgeKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridgeKtTest.kt index 4a4d868..e2d710f 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridgeKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassBridgeKtTest.kt @@ -1,10 +1,10 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Prov -import io.provs.ProvResult -import io.provs.Secret -import io.provs.docker.exitAndRmContainer -import io.provs.local +import io.provs.core.Prov +import io.provs.core.ProvResult +import io.provs.core.Secret +import io.provs.core.docker.exitAndRmContainer +import io.provs.core.local import io.provs.test.defaultTestContainer import io.provs.test.tags.ContainerTest import io.provs.test.tags.NonCi diff --git a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassKtTest.kt b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassKtTest.kt index 8d8c8d3..6aeb686 100644 --- a/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/extensions/workplace/base/GopassKtTest.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.extensions.workplace.base -import io.provs.Secret -import io.provs.remote +import io.provs.core.Secret +import io.provs.core.remote import io.provs.test.defaultTestContainer import io.provs.test.tags.ContainerTest import io.provs.ubuntu.filesystem.base.* @@ -39,7 +39,7 @@ internal class GopassKtTest { // when val res = a.installGopass() - val res2 = a.configureGopass(a.userHome() + ".password-store") + val res2 = a.configureGopass(a.userHome() + gopassRootDir) val res3 = a.gopassMountStore("exampleStore", "~/exampleStoreFolder") // then diff --git a/src/test/kotlin/io/provs/ubuntu/keys/ProvisionKeysTest.kt b/src/test/kotlin/io/provs/ubuntu/keys/ProvisionKeysTest.kt index 1ce816e..8480b0b 100644 --- a/src/test/kotlin/io/provs/ubuntu/keys/ProvisionKeysTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/keys/ProvisionKeysTest.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.keys -import io.provs.Secret +import io.provs.core.Secret import io.provs.test.defaultTestContainer import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.EnabledOnOs diff --git a/src/test/kotlin/io/provs/ubuntu/keys/base/GpgKtTest.kt b/src/test/kotlin/io/provs/ubuntu/keys/base/GpgKtTest.kt index 602bd92..07ed4ac 100644 --- a/src/test/kotlin/io/provs/ubuntu/keys/base/GpgKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/keys/base/GpgKtTest.kt @@ -1,7 +1,7 @@ package io.provs.ubuntu.keys.base -import io.provs.Prov -import io.provs.Secret +import io.provs.core.Prov +import io.provs.core.Secret import io.provs.test.defaultTestContainer import io.provs.test.tags.ContainerTest import io.provs.ubuntu.keys.KeyPair diff --git a/src/test/kotlin/io/provs/ubuntu/keys/base/SshKtTest.kt b/src/test/kotlin/io/provs/ubuntu/keys/base/SshKtTest.kt index d83cdb0..6eb76ca 100644 --- a/src/test/kotlin/io/provs/ubuntu/keys/base/SshKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/keys/base/SshKtTest.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.keys.base -import io.provs.Secret +import io.provs.core.Secret import io.provs.test.defaultTestContainer import io.provs.ubuntu.keys.* import org.junit.jupiter.api.Test diff --git a/src/test/kotlin/io/provs/ubuntu/utils/UtilsKtTest.kt b/src/test/kotlin/io/provs/ubuntu/utils/UtilsKtTest.kt index 1bf8846..429697f 100644 --- a/src/test/kotlin/io/provs/ubuntu/utils/UtilsKtTest.kt +++ b/src/test/kotlin/io/provs/ubuntu/utils/UtilsKtTest.kt @@ -1,6 +1,6 @@ package io.provs.ubuntu.utils -import io.provs.Prov +import io.provs.core.Prov import io.provs.test.tags.ContainerTest import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/src/testFixtures/kotlin/io/provs/test/TestSetup.kt b/src/testFixtures/kotlin/io/provs/test/TestSetup.kt index 0df8081..b855620 100644 --- a/src/testFixtures/kotlin/io/provs/test/TestSetup.kt +++ b/src/testFixtures/kotlin/io/provs/test/TestSetup.kt @@ -1,12 +1,12 @@ package io.provs.test -import io.provs.ProgressType -import io.provs.Prov -import io.provs.docker.dockerImageExists -import io.provs.docker.dockerProvideImage -import io.provs.docker.images.UbuntuPlusUser -import io.provs.processors.ContainerStartMode -import io.provs.processors.ContainerUbuntuHostProcessor +import io.provs.core.ProgressType +import io.provs.core.Prov +import io.provs.core.docker.dockerImageExists +import io.provs.core.docker.dockerProvideImage +import io.provs.core.docker.dockerimages.UbuntuPlusUser +import io.provs.core.processors.ContainerStartMode +import io.provs.core.processors.ContainerUbuntuHostProcessor val DEFAULT_START_MODE_TEST_CONTAINER = ContainerStartMode.USE_RUNNING_ELSE_CREATE