Skip to content

Commit eb49e08

Browse files
felangelbryanoltman
authored andcommitted
feat(flutter_tools): upgrade flutter.gradle to update shorebird.yaml (#6)
1 parent 4145645 commit eb49e08

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import org.gradle.api.tasks.Optional
2828
import org.gradle.api.tasks.TaskAction
2929
import org.gradle.api.tasks.bundling.Jar
3030
import org.gradle.internal.os.OperatingSystem
31+
import org.gradle.util.VersionNumber
32+
import org.yaml.snakeyaml.Yaml
3133

3234
/**
3335
* For apps only. Provides the flutter extension used in app/build.gradle.
@@ -86,6 +88,7 @@ buildscript {
8688
// * AGP version constants in packages/flutter_tools/lib/src/android/gradle_utils.dart
8789
// * AGP version in dependencies block in packages/flutter_tools/gradle/build.gradle.kts
8890
classpath 'com.android.tools.build:gradle:7.3.0'
91+
classpath group: 'org.yaml', name: 'snakeyaml', version: '2.0'
8992
}
9093
}
9194

@@ -1146,6 +1149,26 @@ class FlutterPlugin implements Plugin<Project> {
11461149
return
11471150
}
11481151
Task copyFlutterAssetsTask = addFlutterDeps(variant)
1152+
copyFlutterAssetsTask.doLast {
1153+
if (variant.flavorName != null && !variant.flavorName.isEmpty()) {
1154+
def outputDir = copyFlutterAssetsTask.destinationDir
1155+
def shorebirdYamlFile = new File("${outputDir}/flutter_assets/shorebird.yaml")
1156+
def flavor = variant.flavorName
1157+
def shorebirdYaml = new Yaml().load(shorebirdYamlFile.text)
1158+
def flavorAppId = shorebirdYaml['flavors'][flavor]
1159+
if (flavorAppId == null) {
1160+
throw new GradleException("Cannot find app_id for ${flavor} in shorebird.yaml")
1161+
}
1162+
def content = 'app_id: ' + flavorAppId + '\n';
1163+
if (shorebirdYaml.containsKey('base_url')) {
1164+
content += 'base_url: ' + shorebirdYaml['base_url'] + '\n';
1165+
}
1166+
if (shorebirdYaml.containsKey('auto_update')) {
1167+
content += 'auto_update: ' + shorebirdYaml['auto_update'] + '\n';
1168+
}
1169+
shorebirdYamlFile.write(content)
1170+
}
1171+
}
11491172
def variantOutput = variant.outputs.first()
11501173
def processResources = variantOutput.hasProperty("processResourcesProvider") ?
11511174
variantOutput.processResourcesProvider.get() : variantOutput.processResources

0 commit comments

Comments
 (0)