@@ -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,10 @@ 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(" DATACONNECT_EMULATOR_BINARY_PATH" , dataConnectEmulatorExecutable)
230
+ }
218
231
}
219
232
}
220
233
}
@@ -265,14 +278,19 @@ run {
265
278
266
279
firebaseCommand =
267
280
project.providers
268
- .gradleProperty(" dataConnect.minimalApp .firebaseCommand" )
281
+ .gradleProperty(" dataConnect.demo .firebaseCommand" )
269
282
.orElse(" firebase" )
270
283
271
284
nodeExecutableDirectory =
272
- project.providers.gradleProperty(" dataConnect.minimalApp .nodeExecutableDirectory" ).map {
285
+ project.providers.gradleProperty(" dataConnect.demo .nodeExecutableDirectory" ).map {
273
286
projectDirectory.dir(it).asFile.absolutePath
274
287
}
275
288
289
+ dataConnectEmulatorExecutable =
290
+ project.providers
291
+ .gradleProperty(" dataConnect.demo.dataConnectEmulatorExecutable" )
292
+ .map { projectDirectory.file(it) }
293
+
276
294
val path = providers.environmentVariable(" PATH" )
277
295
firebaseToolsVersion =
278
296
providers
@@ -281,6 +299,7 @@ run {
281
299
this ,
282
300
firebaseCommand = firebaseCommand.get(),
283
301
nodeExecutableDirectory = nodeExecutableDirectory.orNull,
302
+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable.orNull?.asFile,
284
303
path = path.orNull,
285
304
)
286
305
args(" --version" )
0 commit comments