@@ -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,13 @@ abstract class DataConnectGenerateSourcesTask : DefaultTask() {
215224 if (newPath != = null ) {
216225 execSpec.environment(" PATH" , newPath)
217226 }
227+
228+ if (dataConnectEmulatorExecutable != = null ) {
229+ execSpec.environment(
230+ " DATACONNECT_EMULATOR_BINARY_PATH" ,
231+ dataConnectEmulatorExecutable.absolutePath,
232+ )
233+ }
218234 }
219235 }
220236}
@@ -264,15 +280,18 @@ run {
264280 outputDirectory = layout.buildDirectory.dir(" dataConnect/generatedSources" )
265281
266282 firebaseCommand =
267- project.providers
268- .gradleProperty(" dataConnect.minimalApp.firebaseCommand" )
269- .orElse(" firebase" )
283+ project.providers.gradleProperty(" dataConnect.demo.firebaseCommand" ).orElse(" firebase" )
270284
271285 nodeExecutableDirectory =
272- project.providers.gradleProperty(" dataConnect.minimalApp .nodeExecutableDirectory" ).map {
286+ project.providers.gradleProperty(" dataConnect.demo .nodeExecutableDirectory" ).map {
273287 projectDirectory.dir(it).asFile.absolutePath
274288 }
275289
290+ dataConnectEmulatorExecutable =
291+ project.providers.gradleProperty(" dataConnect.demo.dataConnectEmulatorExecutable" ).map {
292+ projectDirectory.file(it)
293+ }
294+
276295 val path = providers.environmentVariable(" PATH" )
277296 firebaseToolsVersion =
278297 providers
@@ -281,6 +300,7 @@ run {
281300 this ,
282301 firebaseCommand = firebaseCommand.get(),
283302 nodeExecutableDirectory = nodeExecutableDirectory.orNull,
303+ dataConnectEmulatorExecutable = dataConnectEmulatorExecutable.orNull?.asFile,
284304 path = path.orNull,
285305 )
286306 args(" --version" )
0 commit comments