core/providers/java/gradle.go
core/providers/java/gradle.goBrowse 1970 files
617 tokens
2,262 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package java2 3import (4 "regexp"5 "strings"6 7 "github.com/railwayapp/railpack/core/generate"8)9 10const (11 DEFAULT_GRADLE_VERSION = "8"12 GRADLE_CACHE_KEY = "gradle"13)14 15func (p *JavaProvider) usesGradle(ctx *generate.GenerateContext) bool {16 return ctx.App.HasFile("gradlew")17}18 19func (p *JavaProvider) setGradleVersion(ctx *generate.GenerateContext) {20 miseStep := ctx.GetMiseStepBuilder()21 gradle := miseStep.Default("gradle", DEFAULT_GRADLE_VERSION)22 23 if envVersion, envName := ctx.Env.GetConfigVariable("GRADLE_VERSION"); envVersion != "" {24 miseStep.Version(gradle, envVersion, envName)25 }26 27 if !ctx.App.HasFile("gradle/wrapper/gradle-wrapper.properties") {28 return29 }30 31 wrapperProps, err := ctx.App.ReadFile("gradle/wrapper/gradle-wrapper.properties")32 if err != nil {33 ctx.Logger.LogWarn("Failed to read gradle/wrapper/gradle-wrapper.properties")34 return35 }36 37 versionRegex, err := regexp.Compile(`(distributionUrl[\S].*[gradle])(-)([0-9|\.]*)`)38 if err != nil {39 return40 }41 42 if !versionRegex.Match([]byte(wrapperProps)) {43 return44 }45 46 customVersion := string(versionRegex.FindSubmatch([]byte(wrapperProps))[3])47 48 parseVersionRegex, err := regexp.Compile(`^(?:[\sa-zA-Z-"']*)(\d*)(?:\.*)(\d*)(?:\.*\d*)(?:["']?)$`)49 if err != nil {50 return51 }52 53 if !parseVersionRegex.Match([]byte(customVersion)) {54 return55 }56 57 parsedVersion := string(parseVersionRegex.FindSubmatch([]byte(customVersion))[1])58 59 miseStep.Version(gradle, parsedVersion, "gradle-wrapper.properties")60}61 62func (p *JavaProvider) gradleCache(ctx *generate.GenerateContext) string {63 return ctx.Caches.AddCache(GRADLE_CACHE_KEY, "/root/.gradle")64}65 66func (p *JavaProvider) readBuildGradle(ctx *generate.GenerateContext) string {67 _, result, _ := ctx.App.ReadFirstFileOf("build.gradle", "build.gradle.kts")68 return result69}70 71func isUsingSpringBoot(buildGradle string) bool {72 return strings.Contains(buildGradle, "org.springframework.boot:spring-boot") ||73 strings.Contains(buildGradle, "spring-boot-gradle-plugin") ||74 strings.Contains(buildGradle, "org.springframework.boot") ||75 strings.Contains(buildGradle, "org.grails:grails-")76}77 78func getGradlePortConfig(buildGradle string) string {79 if isUsingSpringBoot(buildGradle) {80 return "-Dserver.port=$PORT"81 } else {82 return ""83 }84}85