mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-14 19:10:11 +01:00
scanner: catalog: get catalog from parent dirs
When walking through the repo, there may be another settings.gradle in a sub project with a different catalog. In the subdir the catalog of the sub project shuold be used and in other subdir the catalog of the root project should be used.
This commit is contained in:
parent
399ac608c7
commit
4c3dd9c76c
@ -742,7 +742,12 @@ include tests/signindex/testy.jar
|
||||
include tests/signindex/unsigned.jar
|
||||
include tests/source-files/at.bitfire.davdroid/build.gradle
|
||||
include tests/source-files/catalog.test/app/build.gradle
|
||||
include tests/source-files/catalog.test/buildSrc/build.gradle.kts
|
||||
include tests/source-files/catalog.test/buildSrc/settings.gradle.kts
|
||||
include tests/source-files/catalog.test/buildSrc2/build.gradle.kts
|
||||
include tests/source-files/catalog.test/buildSrc2/settings.gradle.kts
|
||||
include tests/source-files/catalog.test/build.gradle.kts
|
||||
include tests/source-files/catalog.test/core/build.gradle
|
||||
include tests/source-files/catalog.test/libs.versions.toml
|
||||
include tests/source-files/catalog.test/gradle/libs.versions.toml
|
||||
include tests/source-files/catalog.test/settings.gradle.kts
|
||||
|
@ -891,7 +891,7 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
|
||||
if m:
|
||||
return m
|
||||
|
||||
catalogs = {}
|
||||
all_catalogs = {}
|
||||
# Iterate through all files in the source code
|
||||
for root, dirs, files in os.walk(build_dir, topdown=True):
|
||||
# It's topdown, so checking the basename is enough
|
||||
@ -900,7 +900,7 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
|
||||
dirs.remove(ignoredir)
|
||||
|
||||
if "settings.gradle" in files or "settings.gradle.kts" in files:
|
||||
catalogs = get_catalogs(root)
|
||||
all_catalogs[str(root)] = get_catalogs(root)
|
||||
|
||||
for curfile in files:
|
||||
if curfile in ['.DS_Store']:
|
||||
@ -983,6 +983,13 @@ def scan_source(build_dir, build=metadata.Build(), json_per_build=None):
|
||||
break
|
||||
|
||||
elif curfile.endswith('.gradle') or curfile.endswith('.gradle.kts'):
|
||||
catalog_path = str(build_dir)
|
||||
# Find the longest path of dir that the curfile is in
|
||||
for p in all_catalogs:
|
||||
if os.path.commonpath([root, p]) == p:
|
||||
catalog_path = p
|
||||
catalogs = all_catalogs.get(catalog_path, {})
|
||||
|
||||
if not os.path.isfile(filepath):
|
||||
continue
|
||||
with open(filepath, 'r', errors='replace') as f:
|
||||
|
@ -74,7 +74,7 @@ class ScannerTest(unittest.TestCase):
|
||||
'se.manyver': 3,
|
||||
'lockfile.test': 1,
|
||||
'com.lolo.io.onelist': 6,
|
||||
'catalog.test': 10,
|
||||
'catalog.test': 22,
|
||||
}
|
||||
for d in glob.glob(os.path.join(source_files, '*')):
|
||||
build = fdroidserver.metadata.Build()
|
||||
|
@ -0,0 +1,5 @@
|
||||
plugins {
|
||||
alias(libs.plugins.google.services)
|
||||
alias(libs.plugins.firebase.crashlytics)
|
||||
alias(projectLibs.plugins.firebase.crashlytics)
|
||||
}
|
22
tests/source-files/catalog.test/buildSrc/settings.gradle.kts
Normal file
22
tests/source-files/catalog.test/buildSrc/settings.gradle.kts
Normal file
@ -0,0 +1,22 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
versionCatalogs {
|
||||
create("libs") {
|
||||
from(files("../gradle/libs.versions.toml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "buildSrc"
|
||||
rootProject.buildFileName = "buildSrc.gradle.kts"
|
@ -0,0 +1,5 @@
|
||||
plugins {
|
||||
alias(libs.plugins.google.services)
|
||||
alias(libs.plugins.firebase.crashlytics)
|
||||
alias(projectLibs.plugins.firebase.crashlytics)
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
versionCatalogs {
|
||||
create("libs") {
|
||||
from(files("../gradle/libs.versions.toml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "buildSrc"
|
||||
rootProject.buildFileName = "buildSrc.gradle.kts"
|
2
tests/source-files/catalog.test/core/build.gradle
Normal file
2
tests/source-files/catalog.test/core/build.gradle
Normal file
@ -0,0 +1,2 @@
|
||||
implementation libs.bundles.firebase
|
||||
implementation libs.play.service.ads
|
Loading…
Reference in New Issue
Block a user