[SKIP CI] improve tasks, support AndroidManifest override (#5695)

* improve tasks, support AndroidManifest override

* remove unnecessary arguments
This commit is contained in:
Aria Moradi 2021-02-08 06:08:45 -08:00 committed by GitHub
parent c05656265b
commit d14bfcb1ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 29 deletions

View File

@ -35,18 +35,10 @@ jobs:
mkdir -p ~/.gradle
cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
- name: Build multi-source library
- name: Generate sources from the multi-source library
uses: eskatos/gradle-command-action@v1
with:
arguments: :multisrc:assembleDebug
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
- name: Run multi-source generators
uses: eskatos/gradle-command-action@v1
with:
arguments: :multisrc:runAllGenerators
arguments: :multisrc:multisrcGenerators
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true

View File

@ -46,22 +46,10 @@ jobs:
mkdir -p ~/.gradle
cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties
- name: Build multi-source library
- name: Generate sources from the multi-source library
uses: eskatos/gradle-command-action@v1
with:
build-root-directory: master
wrapper-directory: master
arguments: :multisrc:assembleDebug
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
- name: Run multi-source generators
uses: eskatos/gradle-command-action@v1
with:
build-root-directory: master
wrapper-directory: master
arguments: :multisrc:runAllGenerators
arguments: :multisrc:multisrcGenerators
wrapper-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true

View File

@ -21,7 +21,7 @@ repositories {
apply("$rootDir/common-dependencies.gradle")
tasks {
val runAllGenerators by registering {
val multisrcGenerators by registering {
doLast {
val isWindows = System.getProperty("os.name").toString().toLowerCase().contains("win")
val classPath = (configurations.debugCompileOnly.get().asFileTree.toList() +
@ -46,5 +46,6 @@ tasks {
throw Exception("Java process failed with exit code: $exitCode")
}
}
dependsOn("assembleDebug")
}
}

View File

@ -68,7 +68,11 @@ interface ThemeSourceGenerator {
""".trimIndent())
}
private fun writeAndroidManifest(androidManifestFile: File) {
private fun writeAndroidManifest(androidManifestFile: File, manifestOverridesPath: String, source: ThemeSourceData, projectRootPath: String) {
val androidManifestOverride = File("$manifestOverridesPath/${source.pkgName}")
if (androidManifestOverride.exists())
androidManifestOverride.copyRecursively(File(projectRootPath))
else
androidManifestFile.writeText("""
<?xml version="1.0" encoding="utf-8"?>
<!-- THIS FILE IS AUTO-GENERATED; DO NOT EDIT -->
@ -82,6 +86,7 @@ interface ThemeSourceGenerator {
val overridesPath = "$userDir/multisrc/overrides" // userDir = tachiyomi-extensions project root path
val resOverridesPath = "$overridesPath/res/$themePkg"
val srcOverridesPath = "$overridesPath/src/$themePkg"
val manifestOverridesPath = "$overridesPath/manifest/$themePkg"
val projectGradleFile = File("$projectRootPath/build.gradle")
val projectAndroidManifestFile = File("$projectRootPath/AndroidManifest.xml")
@ -93,7 +98,7 @@ interface ThemeSourceGenerator {
cleanDirectory(projectRootFile)
writeGradle(projectGradleFile, source, baseVersionCode)
writeAndroidManifest(projectAndroidManifestFile)
writeAndroidManifest(projectAndroidManifestFile, manifestOverridesPath, source, projectRootPath)
writeSourceFiles(projectSrcPath, srcOverridesPath, source, themePkg, themeClass)
copyThemeClasses(userDir, themePkg, projectRootPath)