1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-15 03:20:10 +01:00

Merge branch 'catalog2' into 'master'

scanner: catalog: get catalog from parent dirs

See merge request fdroid/fdroidserver!1540
This commit is contained in:
Hans-Christoph Steiner 2024-10-30 13:51:12 +00:00
commit a9db97d214
9 changed files with 75 additions and 6 deletions

View File

@ -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

View File

@ -73,9 +73,7 @@ GRADLE_KTS_CATALOG_FILE_REGEX = re.compile(
GRADLE_CATALOG_FILE_REGEX = re.compile(
r'''(\w+)\s*\{[^}]*from\(files\(['"]([^"]+)['"]\)\)'''
)
VERSION_CATALOG_REGEX = re.compile(
r'dependencyResolutionManagement\s*\{[^}]*versionCatalogs\s*\{'
)
VERSION_CATALOG_REGEX = re.compile(r'versionCatalogs\s*\{')
class ExitCode(IntEnum):
@ -891,7 +889,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 +898,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 +981,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:

View File

@ -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()

View File

@ -0,0 +1,5 @@
plugins {
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(projectLibs.plugins.firebase.crashlytics)
}

View 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"

View File

@ -0,0 +1,5 @@
plugins {
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(projectLibs.plugins.firebase.crashlytics)
}

View 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"

View File

@ -0,0 +1,2 @@
implementation libs.bundles.firebase
implementation libs.play.service.ads

View File

@ -1,4 +1,7 @@
dependencyResolutionManagement {
repositories {
mavenCentral()
}
defaultLibrariesExtensionName = "projectLibs"
versionCatalogs {
create("libs") {