@@ -124,6 +124,11 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
124124
125125 @get:Input @get:Optional abstract val nodeExecutableDirectory: Property <String >
126126
127+ @get:InputFile
128+ @get:Optional
129+ @get:PathSensitive(PathSensitivity .ABSOLUTE )
130+ abstract val dataConnectEmulatorExecutable: RegularFileProperty
131+
127132 @get:OutputDirectory abstract val outputDirectory: DirectoryProperty
128133
129134 @get:Internal abstract val workDirectory: DirectoryProperty
@@ -140,13 +145,15 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
140145 val firebaseToolsVersion: String = firebaseToolsVersion.get()
141146 val firebaseCommand: String = firebaseCommand.get()
142147 val nodeExecutableDirectory: String? = nodeExecutableDirectory.orNull
148+ val dataConnectEmulatorExecutable: File ? = dataConnectEmulatorExecutable.orNull?.asFile
143149 val outputDirectory: File = outputDirectory.get().asFile
144150 val workDirectory: File = workDirectory.get().asFile
145151
146152 logger.info(" inputDirectory: {}" , inputDirectory.absolutePath)
147153 logger.info(" firebaseToolsVersion: {}" , firebaseToolsVersion)
148154 logger.info(" firebaseCommand: {}" , firebaseCommand)
149155 logger.info(" nodeExecutableDirectory: {}" , nodeExecutableDirectory)
156+ logger.info(" dataConnectEmulatorExecutable: {}" , dataConnectEmulatorExecutable)
150157 logger.info(" outputDirectory: {}" , outputDirectory.absolutePath)
151158 logger.info(" workDirectory: {}" , workDirectory.absolutePath)
152159
@@ -170,6 +177,7 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
170177 this ,
171178 firebaseCommand = firebaseCommand,
172179 nodeExecutableDirectory = nodeExecutableDirectory,
180+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable,
173181 path = providerFactory.environmentVariable(" PATH" ).orNull,
174182 )
175183 args(" --debug" , " dataconnect:sdk:generate" )
@@ -197,6 +205,7 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
197205 execSpec : ExecSpec ,
198206 firebaseCommand : String ,
199207 nodeExecutableDirectory : String? ,
208+ dataConnectEmulatorExecutable : File ? ,
200209 path : String? ,
201210 ) {
202211 execSpec.setCommandLine(firebaseCommand)
@@ -215,6 +224,10 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
215224 if (newPath != = null ) {
216225 execSpec.environment(" PATH" , newPath)
217226 }
227+
228+ if (dataConnectEmulatorExecutable != = null ) {
229+ execSpec.environment(" DATACONNECT_EMULATOR_BINARY_PATH" , dataConnectEmulatorExecutable)
230+ }
218231 }
219232 }
220233}
@@ -265,14 +278,19 @@ run {
265278
266279 firebaseCommand =
267280 project.providers
268- .gradleProperty(" dataConnect.minimalApp .firebaseCommand" )
281+ .gradleProperty(" dataConnect.demo .firebaseCommand" )
269282 .orElse(" firebase" )
270283
271284 nodeExecutableDirectory =
272- project.providers.gradleProperty(" dataConnect.minimalApp .nodeExecutableDirectory" ).map {
285+ project.providers.gradleProperty(" dataConnect.demo .nodeExecutableDirectory" ).map {
273286 projectDirectory.dir(it).asFile.absolutePath
274287 }
275288
289+ dataConnectEmulatorExecutable =
290+ project.providers
291+ .gradleProperty(" dataConnect.demo.dataConnectEmulatorExecutable" )
292+ .map { projectDirectory.file(it) }
293+
276294 val path = providers.environmentVariable(" PATH" )
277295 firebaseToolsVersion =
278296 providers
@@ -281,6 +299,7 @@ run {
281299 this ,
282300 firebaseCommand = firebaseCommand.get(),
283301 nodeExecutableDirectory = nodeExecutableDirectory.orNull,
302+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable.orNull?.asFile,
284303 path = path.orNull,
285304 )
286305 args(" --version" )
0 commit comments