-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathopen-api-code-gen.gradle.kts
More file actions
66 lines (53 loc) · 3.06 KB
/
Copy pathopen-api-code-gen.gradle.kts
File metadata and controls
66 lines (53 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
tasks.register<Exec>("generateOpenApiClient") {
group = "Custom"
description = "Generates open api client"
val repoUrl = project.findProperty("repoUrl") as? String ?: "git@github.com:GetStream/chat.git"
val refType = project.findProperty("refType") as? String ?: "branch"
val refValue = project.findProperty("refValue") as? String ?: "feature/rahullohra/add_default_values"
val modelPackageName = project.findProperty("modelPackage") as? String ?: "io.getstream.android.video.generated.models"
val modelsDir = project.findProperty("modelsDir") as? String ?: "models"
val apiServicePackageName = project.findProperty("apiServicePackage") as? String ?: "io.getstream.android.video.generated.apis"
val apiServiceClassName = project.findProperty("apiServiceClassName") as? String ?: "ProductvideoApi"
val apiServiceDir = project.findProperty("apiServiceDir") as? String ?: "apis"
val moshiAdaptersDir = project.findProperty("moshiAdaptersDir") as? String ?: "infrastructure"
val moshiAdapterPackage = project.findProperty("moshiAdapterPackageName") as? String ?: "io.getstream.android.video.generated.infrastructure"
val classesToSkip = project.findProperty("classesToSkip") as? String ?: "PrivacySettingsResponse,PrivacySettings,StopRTMPBroadcastsRequest"
// val outputSpec = project.findProperty("outputSpec") as? String ?: "./releases/video-openapi-clientside"
val outputClient = project.findProperty("outputClient") as? String ?: "stream-video-android-core/src/main/kotlin/io/getstream/android/video/generated"
val keepClasses = project.findProperty("keepClasses") as? String ?: "WSAuthMessageRequest.kt"
val buildDir = project.layout.buildDirectory.asFile.get()
println("outputClient = $outputClient")
println("path = $path")
println("buildDir = $buildDir")
println("workingDir = $workingDir")
println("projectDir = ${projectDir}")
println("project root dir = ${project.rootDir}")
println("Keep Classes = ${keepClasses}")
// return@register
workingDir = project.rootDir
val scriptFile = file("${project.rootDir}/generate_openapi_v2.sh")
// Make sure the script exists
if (!scriptFile.exists()) {
throw GradleException("❌ ERROR: Script not found at ${scriptFile.absolutePath}")
}
// Ensure the script has execute permission
scriptFile.setExecutable(true)
commandLine("sh", scriptFile.absolutePath,
"--repo-url=$repoUrl",
"--ref-type=$refType",
"--ref-value=$refValue",
"--model-package-name=$modelPackageName",
"--model-dir=$modelsDir",
"--api-service-package-name=$apiServicePackageName",
"--api-service-class-name=$apiServiceClassName",
"--api-service-dir=$apiServiceDir",
"--moshi-adapters-dir=$moshiAdaptersDir",
"--moshi-adapters-package-name=$moshiAdapterPackage",
"--classes-to-skip=$classesToSkip",
"--keep-classes=$keepClasses",
"--output-client=$outputClient",
)
doLast {
println("✅ OpenAPI Kotlin client generation completed via Gradle!")
}
}