diff --git a/completion/bash-completion b/completion/bash-completion
index 2142534e..af9acf00 100644
--- a/completion/bash-completion
+++ b/completion/bash-completion
@@ -174,7 +174,7 @@ __complete_publish() {
__complete_checkupdates() {
opts="-v -q"
- lopts="--verbose --quiet --auto --autoonly --commit --gplay"
+ lopts="--verbose --quiet --auto --autoonly --commit --gplay --allow-dirty"
case "${cur}" in
-*)
__complete_options
diff --git a/fdroidserver/build.py b/fdroidserver/build.py
index 58e4ccf4..8f084a94 100644
--- a/fdroidserver/build.py
+++ b/fdroidserver/build.py
@@ -1233,6 +1233,7 @@ def main():
txt = "* build session started at " + common.get_wiki_timestamp(start_timestamp) + '\n' \
+ "* this build started at " + build_starttime + '\n' \
+ "* this build completed at " + common.get_wiki_timestamp() + '\n' \
+ + common.get_git_describe_link() \
+ '* fdroidserverid: [https://gitlab.com/fdroid/fdroidserver/commit/' \
+ fdroidserverid + ' ' + fdroidserverid + ']\n\n'
if buildserverid:
diff --git a/fdroidserver/checkupdates.py b/fdroidserver/checkupdates.py
index 0a4f6e27..72c8b22b 100644
--- a/fdroidserver/checkupdates.py
+++ b/fdroidserver/checkupdates.py
@@ -535,6 +535,7 @@ def update_wiki(gplaylog, locallog):
newpage = site.Pages[wiki_page_path]
txt = ''
txt += "* command line: " + ' '.join(sys.argv) + "
\n"
+ txt += common.get_git_describe_link()
txt += "* started at " + common.get_wiki_timestamp(start_timestamp) + '\n'
txt += "* completed at " + common.get_wiki_timestamp() + '\n'
txt += "\n\n"
@@ -572,6 +573,8 @@ def main():
help=_("Only process apps with auto-updates"))
parser.add_argument("--commit", action="store_true", default=False,
help=_("Commit changes"))
+ parser.add_argument("--allow-dirty", action="store_true", default=False,
+ help=_("Run on git repo that has uncommitted changes"))
parser.add_argument("--gplay", action="store_true", default=False,
help=_("Only print differences with the Play Store"))
metadata.add_metadata_arguments(parser)
@@ -580,6 +583,12 @@ def main():
config = common.read_config(options)
+ if not options.allow_dirty:
+ status = subprocess.check_output(['git', 'status', '--porcelain'])
+ if status:
+ logging.error(_('Build metadata git repo has uncommited changes!'))
+ sys.exit(1)
+
# Get all apps...
allapps = metadata.read_metadata()
diff --git a/fdroidserver/common.py b/fdroidserver/common.py
index cf1d9203..76089184 100644
--- a/fdroidserver/common.py
+++ b/fdroidserver/common.py
@@ -3100,3 +3100,21 @@ def get_android_tools_version_log(ndk_path=None):
log += '* ' + name + ' (' + version + ')\n'
return log
+
+
+def get_git_describe_link():
+ """Get a link to the current fdroiddata commit, to post to the wiki
+
+ """
+ try:
+ output = subprocess.check_output(['git', 'describe', '--always', '--dirty', '--abbrev=0'],
+ universal_newlines=True).strip()
+ except subprocess.CalledProcessError:
+ pass
+ if output:
+ commit = output.replace('-dirty', '')
+ return ('* fdroiddata: [https://gitlab.com/fdroid/fdroiddata/commit/{commit} {id}]\n'
+ .format(commit=commit, id=output))
+ else:
+ logging.error(_("'{path}' failed to execute!").format(path='git describe'))
+ return ''
diff --git a/fdroidserver/update.py b/fdroidserver/update.py
index 90fc291b..c22ac0f3 100644
--- a/fdroidserver/update.py
+++ b/fdroidserver/update.py
@@ -329,6 +329,7 @@ def update_wiki(apps, sortedids, apks):
txt += "* command line: " + ' '.join(sys.argv) + "
\n"
txt += "* started at " + common.get_wiki_timestamp(start_timestamp) + '\n'
txt += "* completed at " + common.get_wiki_timestamp() + '\n'
+ txt += common.get_git_describe_link()
txt += "\n\n"
txt += common.get_android_tools_version_log()
newpage.save(txt, summary='Run log')