diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/DesktopService.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/DesktopService.kt index b67fd59..0fc414e 100644 --- a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/DesktopService.kt +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/DesktopService.kt @@ -91,7 +91,7 @@ fun Prov.provisionWorkplace( installRedshift() configureRedshift() - installProvsBinaries() + installBinariesProvs() } if (desktopType == DesktopType.IDE) { @@ -129,7 +129,7 @@ fun Prov.provisionWorkplaceSubmodules( ) = task { if (submodules.contains(DesktopSubmodule.PROVSBINARIES.name.lowercase())) { aptInstall("jarwrapper") - installProvsBinaries() + installBinariesProvs() } ProvResult(true) } \ No newline at end of file diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4k.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4k.kt new file mode 100644 index 0000000..06d9369 --- /dev/null +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4k.kt @@ -0,0 +1,26 @@ +package org.domaindrivenarchitecture.provs.desktop.infrastructure + +import org.domaindrivenarchitecture.provs.framework.core.Prov +import org.domaindrivenarchitecture.provs.framework.ubuntu.filesystem.base.createDirs +import org.domaindrivenarchitecture.provs.framework.ubuntu.web.base.downloadFromURL + +fun Prov.installBinariesC4k() = task { + // check for latest stable release on: https://gitlab.com/domaindrivenarchitecture/c4k-nextcloud/-/releases + // release 1.0.2 + val jobId = "1824231745" + val installationPath = " /usr/local/bin/" + val fileName = "c4k-nextcloud-standalone.jar" + val c4kNextcloudSha256sum = "5b7eeecf745c720184be4fccdd61a49509ae5e322558506eb6bc3c3ed680c23f" + + createDirs(installationPath, sudo = true) + + downloadFromURL( + "https://gitlab.com/domaindrivenarchitecture/c4k-nextcloud/-/jobs/$jobId/artifacts/raw/target/uberjar/$fileName", + path = installationPath, + filename = fileName, + sha256sum = c4kNextcloudSha256sum, + sudo = true + ) + cmd("chmod 755 $installationPath$fileName", sudo = true) + +} \ No newline at end of file diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/ProvsBinaries.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvs.kt similarity index 88% rename from src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/ProvsBinaries.kt rename to src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvs.kt index 03e0d0c..bf1a83c 100644 --- a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/ProvsBinaries.kt +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvs.kt @@ -5,7 +5,7 @@ import org.domaindrivenarchitecture.provs.framework.ubuntu.filesystem.base.creat import org.domaindrivenarchitecture.provs.framework.ubuntu.web.base.downloadFromURL -fun Prov.installProvsBinaries() = task { +fun Prov.installBinariesProvs() = task { // check for latest stable release on: https://gitlab.com/domaindrivenarchitecture/provs/-/releases // release 0.9.6 val jobId = "2083873496" @@ -30,4 +30,7 @@ fun Prov.installProvsBinaries() = task { sha256sum = provsDesktopSha256sum, sudo = true ) + + cmd("chmod 755 /usr/local/bin/provs-server.jar" , sudo = true) + cmd("chmod 755 /usr/local/bin/provs-desktop.jar", sudo = true) } diff --git a/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4kKtTest.kt b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4kKtTest.kt new file mode 100644 index 0000000..62e4067 --- /dev/null +++ b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesC4kKtTest.kt @@ -0,0 +1,19 @@ +package org.domaindrivenarchitecture.provs.desktop.infrastructure + +import org.domaindrivenarchitecture.provs.framework.ubuntu.filesystem.base.fileExists +import org.domaindrivenarchitecture.provs.test.defaultTestContainer +import org.domaindrivenarchitecture.provs.test.tags.ContainerTest +import org.junit.jupiter.api.Assertions.assertTrue + +internal class BinariesC4kKtTest { + + @ContainerTest + fun downloadC4kBinaries() { + // when + val res = defaultTestContainer().installBinariesC4k() + + // then + assertTrue(res.success) + assertTrue(defaultTestContainer().fileExists(" /usr/local/bin/c4k-nextcloud-standalone.jar", sudo = true)) + } +} \ No newline at end of file diff --git a/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvsKtTest.kt b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvsKtTest.kt new file mode 100644 index 0000000..14af42b --- /dev/null +++ b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/infrastructure/BinariesProvsKtTest.kt @@ -0,0 +1,23 @@ +package org.domaindrivenarchitecture.provs.desktop.infrastructure + +import org.domaindrivenarchitecture.provs.framework.ubuntu.filesystem.base.fileExists +import org.domaindrivenarchitecture.provs.test.defaultTestContainer +import org.domaindrivenarchitecture.provs.test.tags.ContainerTest +import org.junit.jupiter.api.Assertions.assertTrue + +internal class BinariesProvsKtTest { + + @ContainerTest + fun installBinariesProvs() { + // given + val prov = defaultTestContainer() + + // when + val res = prov.installBinariesProvs() + + // then + assertTrue(res.success) + assertTrue(defaultTestContainer().fileExists(" /usr/local/bin/provs-server.jar", sudo = true)) + assertTrue(defaultTestContainer().fileExists(" /usr/local/bin/provs-desktop.jar", sudo = true)) + } +} \ No newline at end of file