1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-02 09:10:11 +02:00

Merge branch 'submodules_ucm' into 'master'

checkupdates: don't fail when we can't init submodules

Closes #231

See merge request fdroid/fdroidserver!395
This commit is contained in:
Marcus 2017-12-04 16:29:11 +00:00
commit 5ae14fab18
3 changed files with 23 additions and 7 deletions

View File

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

View File

@ -53,7 +53,8 @@ from distutils.util import strtobool
import fdroidserver.metadata
from fdroidserver import _
from fdroidserver.exception import FDroidException, VCSException, BuildException, VerificationException
from fdroidserver.exception import FDroidException, VCSException, NoSubmodulesException,\
BuildException, VerificationException
from .asynchronousfilereader import AsynchronousFileReader
@ -883,7 +884,7 @@ class vcs_git(vcs):
self.checkrepo()
submfile = os.path.join(self.local, '.gitmodules')
if not os.path.isfile(submfile):
raise VCSException(_("No git submodules available"))
raise NoSubmodulesException(_("No git submodules available"))
# fix submodules not accessible without an account and public key auth
with open(submfile, 'r') as f:

View File

@ -39,6 +39,10 @@ class VCSException(FDroidException):
pass
class NoSubmodulesException(VCSException):
pass
class BuildException(FDroidException):
pass