@@ -124,6 +124,11 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
124
124
125
125
@get:Input @get:Optional abstract val nodeExecutableDirectory: Property <String >
126
126
127
+ @get:InputFile
128
+ @get:Optional
129
+ @get:PathSensitive(PathSensitivity .ABSOLUTE )
130
+ abstract val dataConnectEmulatorExecutable: RegularFileProperty
131
+
127
132
@get:OutputDirectory abstract val outputDirectory: DirectoryProperty
128
133
129
134
@get:Internal abstract val workDirectory: DirectoryProperty
@@ -140,13 +145,15 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
140
145
val firebaseToolsVersion: String = firebaseToolsVersion.get()
141
146
val firebaseCommand: String = firebaseCommand.get()
142
147
val nodeExecutableDirectory: String? = nodeExecutableDirectory.orNull
148
+ val dataConnectEmulatorExecutable: File ? = dataConnectEmulatorExecutable.orNull?.asFile
143
149
val outputDirectory: File = outputDirectory.get().asFile
144
150
val workDirectory: File = workDirectory.get().asFile
145
151
146
152
logger.info(" inputDirectory: {}" , inputDirectory.absolutePath)
147
153
logger.info(" firebaseToolsVersion: {}" , firebaseToolsVersion)
148
154
logger.info(" firebaseCommand: {}" , firebaseCommand)
149
155
logger.info(" nodeExecutableDirectory: {}" , nodeExecutableDirectory)
156
+ logger.info(" dataConnectEmulatorExecutable: {}" , dataConnectEmulatorExecutable)
150
157
logger.info(" outputDirectory: {}" , outputDirectory.absolutePath)
151
158
logger.info(" workDirectory: {}" , workDirectory.absolutePath)
152
159
@@ -170,6 +177,7 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
170
177
this ,
171
178
firebaseCommand = firebaseCommand,
172
179
nodeExecutableDirectory = nodeExecutableDirectory,
180
+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable,
173
181
path = providerFactory.environmentVariable(" PATH" ).orNull,
174
182
)
175
183
args(" --debug" , " dataconnect:sdk:generate" )
@@ -197,6 +205,7 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
197
205
execSpec : ExecSpec ,
198
206
firebaseCommand : String ,
199
207
nodeExecutableDirectory : String? ,
208
+ dataConnectEmulatorExecutable : File ? ,
200
209
path : String? ,
201
210
) {
202
211
execSpec.setCommandLine(firebaseCommand)
@@ -215,6 +224,13 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
215
224
if (newPath != = null ) {
216
225
execSpec.environment(" PATH" , newPath)
217
226
}
227
+
228
+ if (dataConnectEmulatorExecutable != = null ) {
229
+ execSpec.environment(
230
+ " DATACONNECT_EMULATOR_BINARY_PATH" ,
231
+ dataConnectEmulatorExecutable.absolutePath,
232
+ )
233
+ }
218
234
}
219
235
}
220
236
}
@@ -264,15 +280,18 @@ run {
264
280
outputDirectory = layout.buildDirectory.dir(" dataConnect/generatedSources" )
265
281
266
282
firebaseCommand =
267
- project.providers
268
- .gradleProperty(" dataConnect.minimalApp.firebaseCommand" )
269
- .orElse(" firebase" )
283
+ project.providers.gradleProperty(" dataConnect.demo.firebaseCommand" ).orElse(" firebase" )
270
284
271
285
nodeExecutableDirectory =
272
- project.providers.gradleProperty(" dataConnect.minimalApp .nodeExecutableDirectory" ).map {
286
+ project.providers.gradleProperty(" dataConnect.demo .nodeExecutableDirectory" ).map {
273
287
projectDirectory.dir(it).asFile.absolutePath
274
288
}
275
289
290
+ dataConnectEmulatorExecutable =
291
+ project.providers.gradleProperty(" dataConnect.demo.dataConnectEmulatorExecutable" ).map {
292
+ projectDirectory.file(it)
293
+ }
294
+
276
295
val path = providers.environmentVariable(" PATH" )
277
296
firebaseToolsVersion =
278
297
providers
@@ -281,6 +300,7 @@ run {
281
300
this ,
282
301
firebaseCommand = firebaseCommand.get(),
283
302
nodeExecutableDirectory = nodeExecutableDirectory.orNull,
303
+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable.orNull?.asFile,
284
304
path = path.orNull,
285
305
)
286
306
args(" --version" )
0 commit comments