[coreboot-gerrit] Change in coreboot[master]: util/scripts: Add script to update submodules
Martin Roth (Code Review)
gerrit at coreboot.org
Sun Jul 23 05:32:04 CEST 2017
Martin Roth has uploaded this change for review. ( https://review.coreboot.org/20703
Change subject: util/scripts: Add script to update submodules
......................................................................
util/scripts: Add script to update submodules
Change-Id: I4e238b539f06ce4031e0e99d26943d226a3c2556
Signed-off-by: Martin Roth <martinroth at google.com>
---
A util/scripts/update_submodules
1 file changed, 73 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/20703/1
diff --git a/util/scripts/update_submodules b/util/scripts/update_submodules
new file mode 100755
index 0000000..7a22505
--- /dev/null
+++ b/util/scripts/update_submodules
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2017 Google Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+
+# Ddescription:
+# Check all submodules for updates. If there are more than a minimum
+# number of changes, create a commit to update the submodule to the
+# new version.
+
+export LANG=C
+export LC_ALL=C
+export TZ=UTC
+
+min_commits=10
+
+TOP=${PWD}
+SUBMODULES_WITH_UPDATES=0
+submodule_dirs=$(git submodule foreach pwd | grep -v Entering)
+
+(
+echo "Checking submodules..."
+for submodule in $submodule_dirs; do
+ cd "$submodule" || exit 1
+ initial_commit_id="$(git log --pretty='%h' -n 1)"
+ initial_commit_description="$(git log --pretty='%ci - (%s)' -n 1)"
+ git fetch 2>/dev/null
+ updated_commit_id="$(git log --pretty='%h' -n 1 origin/master)"
+ updated_commit_description="$(git log --pretty='%ci - (%s)' -n 1 "${updated_commit_id}")"
+ if [ "${initial_commit_id}" = "${updated_commit_id}" ]; then
+ # echo "No updates for ${submodule}"
+ continue
+ fi
+ SUBMODULES_WITH_UPDATES+=1
+ update_count="$(git log --oneline "${initial_commit_id}..${updated_commit_id}" | wc -l)"
+ echo "${update_count} new commits for ${submodule}"
+ if [ "${update_count}" -ge "${min_commits}" ]; then
+ echo "Creating commit to update ${submodule##*/} submodule"
+ git checkout "${updated_commit_id}" > /dev/null 2>&1
+ cd "${TOP}" || exit 1
+ sleep 1
+ git add "${submodule}" > /dev/null 2>&1 || exit 1
+ sleep 1
+ git commit -s -F- > /dev/null 2>&1 <<EOF
+Update ${submodule##*/} submodule to upstream master
+
+Updating from commit id ${initial_commit_id}:
+$initial_commit_description
+
+to commit id ${updated_commit_id}:
+${updated_commit_description}
+
+This brings in ${update_count} new commits.
+EOF
+ sleep 1
+ fi
+done
+
+if [ "${SUBMODULES_WITH_UPDATES}" = "0" ]; then
+ echo "No submodules with any updates."
+fi
+)
--
To view, visit https://review.coreboot.org/20703
To unsubscribe, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e238b539f06ce4031e0e99d26943d226a3c2556
Gerrit-Change-Number: 20703
Gerrit-PatchSet: 1
Gerrit-Owner: Martin Roth <martinroth at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20170723/29c3e0bd/attachment.html>
More information about the coreboot-gerrit
mailing list