in src/main/groovy/com/jetbrains/python/envs/PythonEnvsPlugin.groovy [154:203]
private Task createPythonUnixTask(Project project, Python env) {
return project.tasks.create(name: "Bootstrap_${env.type}_'$env.name'") {
dependsOn "install_python_build"
onlyIf {
isUnix && (!env.envDir.exists() || isPythonInvalid(project, env))
}
doFirst {
env.envDir.mkdirs()
env.envDir.deleteDir()
}
doLast {
project.logger.quiet("Creating $env.type '$env.name' at $env.envDir directory")
try {
project.exec {
executable new File(project.buildDir, "python-build/bin/python-build")
if (env.patchFileUri != null) {
project.logger.quiet("Applying patch from ${env.patchFileUri} to ${env.name}")
if (Paths.get(env.patchFileUri).isAbsolute()) {
standardInput = new FileInputStream(env.patchFileUri)
}
else {
standardInput = new StringInputStream(new URI(env.patchFileUri).toURL().text)
}
args "-p", env.version, env.envDir
}
else {
args env.version, env.envDir
}
}
project.logger.quiet("Successfully")
}
catch (Exception e) {
if (isPythonInvalid(project, env)) {
project.logger.error(e.message)
throw new GradleException(e.message)
} else {
project.logger.warn(e.message)
}
}
upgradePipAndSetuptools(project, env)
pipInstall(project, env, env.packages)
}
}
}