Skip to content

Commit 8786a2b

Browse files
felangeleseidel
authored andcommitted
feat(flutter_tools): upgrade flutter.gradle to update shorebird.yaml (#6)
1 parent 2524052 commit 8786a2b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

packages/flutter_tools/gradle/src/main/groovy/flutter.groovy

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import org.gradle.api.tasks.TaskAction
3131
import org.gradle.api.tasks.bundling.Jar
3232
import org.gradle.internal.os.OperatingSystem
3333
import org.gradle.util.VersionNumber
34+
import org.yaml.snakeyaml.Yaml
3435

3536
/**
3637
* For apps only. Provides the flutter extension used in app/build.gradle.
@@ -84,6 +85,7 @@ buildscript {
8485
// * AGP version constants in packages/flutter_tools/lib/src/android/gradle_utils.dart
8586
// * AGP version in dependencies block in packages/flutter_tools/gradle/build.gradle.kts
8687
classpath 'com.android.tools.build:gradle:7.3.0'
88+
classpath group: 'org.yaml', name: 'snakeyaml', version: '2.0'
8789
}
8890
}
8991

@@ -1115,6 +1117,26 @@ class FlutterPlugin implements Plugin<Project> {
11151117
return
11161118
}
11171119
Task copyFlutterAssetsTask = addFlutterDeps(variant)
1120+
copyFlutterAssetsTask.doLast {
1121+
if (variant.flavorName != null && !variant.flavorName.isEmpty()) {
1122+
def outputDir = copyFlutterAssetsTask.destinationDir
1123+
def shorebirdYamlFile = new File("${outputDir}/flutter_assets/shorebird.yaml")
1124+
def flavor = variant.flavorName
1125+
def shorebirdYaml = new Yaml().load(shorebirdYamlFile.text)
1126+
def flavorAppId = shorebirdYaml['flavors'][flavor]
1127+
if (flavorAppId == null) {
1128+
throw new GradleException("Cannot find app_id for ${flavor} in shorebird.yaml")
1129+
}
1130+
def content = 'app_id: ' + flavorAppId + '\n';
1131+
if (shorebirdYaml.containsKey('base_url')) {
1132+
content += 'base_url: ' + shorebirdYaml['base_url'] + '\n';
1133+
}
1134+
if (shorebirdYaml.containsKey('auto_update')) {
1135+
content += 'auto_update: ' + shorebirdYaml['auto_update'] + '\n';
1136+
}
1137+
shorebirdYamlFile.write(content)
1138+
}
1139+
}
11181140
def variantOutput = variant.outputs.first()
11191141
def processResources = variantOutput.hasProperty("processResourcesProvider") ?
11201142
variantOutput.processResourcesProvider.get() : variantOutput.processResources

0 commit comments

Comments
 (0)