refactorings, add python to IDE

merge-requests/1/merge
ansgarz 3 years ago
parent acfc5ae753
commit f5a544a7b2

@ -9,7 +9,7 @@ private var aptInit = false
/**
* Installs package(s) by using package manager "apt".
*
* @param packages the packages to be installed, packages separated by space if there are more than one
* @param packages the packages to be installed, packages must be separated by space if there are more than one
*/
fun Prov.aptInstall(packages: String): ProvResult = def {
if (!aptInit) {
@ -27,6 +27,21 @@ fun Prov.aptInstall(packages: String): ProvResult = def {
}
/**
* Installs package(s) by using package manager "snap".
*
* @param packages the packages to be installed, packages must be separated by space if there are more than one
*/
// todo: add test
fun Prov.snapInstall(packages: String, classic: Boolean = false): ProvResult = def {
val packageList = packages.split(" ")
for (packg in packageList) {
cmd("sudo snap install $packg" + if (classic) " --classic" else "")
}
ProvResult(true) // dummy
}
/**
* Installs a package from a ppa (personal package archive) by using package manager "apt".
*

@ -8,8 +8,8 @@ import kotlin.system.exitProcess
/**
* Provisions according to the options either a meissa workplace, reposOnly or gopassOnly.
* Locally or on a remote machine. If remotely, the remote host and remote user are specified by args parameters.
* Provisions a workplace locally or on a remote machine.
* Specify option -h for help.
*/
fun main(args: Array<String>) {

@ -86,10 +86,12 @@ fun Prov.provisionWorkplace(
installDocker()
// IDEs
cmd("sudo snap install intellij-idea-community --classic")
installVSC("python", "clojure")
installIntelliJ()
installDevOps()
installPython()
}
ProvResult(true) // dummy

@ -0,0 +1,8 @@
package org.domaindrivenarchitecture.provs.workplace.infrastructure
import org.domaindrivenarchitecture.provs.core.Prov
fun Prov.installIntelliJ() = task {
cmd("sudo snap install intellij-idea-community --classic")
}

@ -2,10 +2,9 @@ package org.domaindrivenarchitecture.provs.workplace.infrastructure
import org.domaindrivenarchitecture.provs.core.Prov
import org.domaindrivenarchitecture.provs.core.ProvResult
import org.domaindrivenarchitecture.provs.ubuntu.filesystem.base.createDirs
import org.domaindrivenarchitecture.provs.ubuntu.filesystem.base.dirExists
import org.domaindrivenarchitecture.provs.ubuntu.install.base.aptInstall
fun Prov.installPython() = def {
installPython3()
installVenv()
@ -14,14 +13,12 @@ fun Prov.installPython() = def {
installJupyterlab()
}
fun Prov.installPython3(): ProvResult = def {
aptInstall("python3.8-venv")
}
fun Prov.installVenv(): ProvResult = def {
var venvHome = "~/.python/meissa"
val venvHome = "~/.python/meissa"
cmd("python3 -m venv " + venvHome)
cmd("source " + venvHome + "/bin/activate")
cmd("pip install pip --upgrade")

@ -0,0 +1,14 @@
package org.domaindrivenarchitecture.provs.workplace.infrastructure
import org.domaindrivenarchitecture.provs.test.defaultTestContainer
import org.domaindrivenarchitecture.provs.test.tags.ContainerTest
import org.junit.jupiter.api.Test
internal class PythonKtTest {
@Test
@ContainerTest
fun installPython() {
defaultTestContainer().installPython()
}
}
Loading…
Cancel
Save