mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-09-15 15:32:30 +03:00
checkupdates: don't fail when we can't init submodules
Later revisions might have removed the submodules so we want to keep going when there are no submodules present. We still abort when there is an error initializing submodules. Fixes fdroid/fdroidserver#231
This commit is contained in:
parent
2dcb19d392
commit
db0a97e8e7
3 changed files with 23 additions and 7 deletions
|
@ -33,7 +33,7 @@ import copy
|
|||
from . import _
|
||||
from . import common
|
||||
from . import metadata
|
||||
from .exception import VCSException, FDroidException, MetaDataException
|
||||
from .exception import VCSException, NoSubmodulesException, FDroidException, MetaDataException
|
||||
|
||||
|
||||
# Check for a new version by looking at a document retrieved via HTTP.
|
||||
|
@ -110,8 +110,7 @@ def check_tags(app, pattern):
|
|||
|
||||
last_build = app.get_last_build()
|
||||
|
||||
if last_build.submodules:
|
||||
vcs.initsubmodules()
|
||||
try_init_submodules(app, last_build, vcs)
|
||||
|
||||
hpak = None
|
||||
htag = None
|
||||
|
@ -207,8 +206,7 @@ def check_repomanifest(app, branch=None):
|
|||
if len(app.builds) > 0:
|
||||
last_build = app.builds[-1]
|
||||
|
||||
if last_build.submodules:
|
||||
vcs.initsubmodules()
|
||||
try_init_submodules(app, last_build, vcs)
|
||||
|
||||
hpak = None
|
||||
hver = None
|
||||
|
@ -300,6 +298,19 @@ def check_gplay(app):
|
|||
return (version.strip(), None)
|
||||
|
||||
|
||||
def try_init_submodules(app, last_build, vcs):
|
||||
"""Try to init submodules if the last build entry used them.
|
||||
They might have been removed from the app's repo in the meantime,
|
||||
so if we can't find any submodules we continue with the updates check.
|
||||
If there is any other error in initializing them then we stop the check.
|
||||
"""
|
||||
if last_build.submodules:
|
||||
try:
|
||||
vcs.initsubmodules()
|
||||
except NoSubmodulesException:
|
||||
logging.info("No submodules present for {}".format(app.Name))
|
||||
|
||||
|
||||
# Return all directories under startdir that contain any of the manifest
|
||||
# files, and thus are probably an Android project.
|
||||
def dirs_with_manifest(startdir):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue