<p>osmith <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13412">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Max: Looks good to me, but someone else must approve
  Harald Welte: Looks good to me, approved
  osmith: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmocom-list-commits.sh: move functions to common.sh<br><br>Prepare for the upcoming osmocom-build-old-tags-against-master.sh<br>script, which will benefit from querying the last n git tags in advance.<br><br>Related: OS#3765<br>Change-Id: I61be4cffb9275cabc1b253f0b298503ad0d3aea4<br>---<br>A scripts/common.sh<br>M scripts/osmocom-list-commits.sh<br>2 files changed, 66 insertions(+), 43 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/scripts/common.sh b/scripts/common.sh</span><br><span>new file mode 100644</span><br><span>index 0000000..9f274d7</span><br><span>--- /dev/null</span><br><span>+++ b/scripts/common.sh</span><br><span>@@ -0,0 +1,61 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+# Various functions and variables used in multiple osmo-ci shell scripts</span><br><span style="color: hsl(120, 100%, 40%);">+OSMO_GIT_URL="https://git.osmocom.org"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Print commit of HEAD for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(120, 100%, 40%);">+# "f90496f577e78944ce8db1aa5b900477c1e479b0"</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: repository</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_git_head_commit() {</span><br><span style="color: hsl(120, 100%, 40%);">+   # git output:</span><br><span style="color: hsl(120, 100%, 40%);">+ # f90496f577e78944ce8db1aa5b900477c1e479b0        HEAD</span><br><span style="color: hsl(120, 100%, 40%);">+        ret="$(git ls-remote "$OSMO_GIT_URL/$1" HEAD)"</span><br><span style="color: hsl(120, 100%, 40%);">+    ret="$(echo "$ret" | awk '{print $1}')"</span><br><span style="color: hsl(120, 100%, 40%);">+   echo "$ret"</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Print last tags and related commits for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(120, 100%, 40%);">+# "ec798b89700dcca5c5b28edf1a1cd16ea311f30a        refs/tags/1.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: Osmocom repository</span><br><span style="color: hsl(120, 100%, 40%);">+# $2: amount of commit, tag pairs to print (default: 1)</span><br><span style="color: hsl(120, 100%, 40%);">+# $3: string to print when there are no tags (default: empty string)</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_git_last_commits_tags() {</span><br><span style="color: hsl(120, 100%, 40%);">+        # git output:</span><br><span style="color: hsl(120, 100%, 40%);">+ # ec798b89700dcca5c5b28edf1a1cd16ea311f30a        refs/tags/1.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+     # eab5f594b0a7cf50ad97b039f73beff42cc8312a        refs/tags/1.0.1^{}</span><br><span style="color: hsl(120, 100%, 40%);">+  # ...</span><br><span style="color: hsl(120, 100%, 40%);">+ # 41e7cf115d4148a9f34fcb863b68b2d5370e335d        refs/tags/1.3.1^{}</span><br><span style="color: hsl(120, 100%, 40%);">+  # 8a9f12dc2f69bf3a4e861cc9a81b71bdc5f13180        refs/tags/3G_2016_09</span><br><span style="color: hsl(120, 100%, 40%);">+        # ee618ecbedec82dfd240334bc87d0d1c806477b0        refs/tags/debian/0.9.13-0_jrsantos.1</span><br><span style="color: hsl(120, 100%, 40%);">+        # a3fdd24af099b449c9856422eb099fb45a5595df        refs/tags/debian/0.9.13-0_jrsantos.1^{}</span><br><span style="color: hsl(120, 100%, 40%);">+     # ...</span><br><span style="color: hsl(120, 100%, 40%);">+ ret="$(git ls-remote --tags "$OSMO_GIT_URL/$1")"</span><br><span style="color: hsl(120, 100%, 40%);">+  ret="$(echo "$ret" | grep 'refs/tags/[0-9.]*$' || true)"</span><br><span style="color: hsl(120, 100%, 40%);">+  ret="$(echo "$ret" | sort -V -t/ -k3)"</span><br><span style="color: hsl(120, 100%, 40%);">+    ret="$(echo "$ret" | tail -n "$2")"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if [ -n "$ret" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "$ret"</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span style="color: hsl(120, 100%, 40%);">+          echo "$3"</span><br><span style="color: hsl(120, 100%, 40%);">+   fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Print last commits for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(120, 100%, 40%);">+# "ec798b89700dcca5c5b28edf1a1cd16ea311f30a"</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: repository</span><br><span style="color: hsl(120, 100%, 40%);">+# $2: amount of commits to print (default: 1)</span><br><span style="color: hsl(120, 100%, 40%);">+# $3: string to print when there are no tags (default: empty string)</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_git_last_commits() {</span><br><span style="color: hsl(120, 100%, 40%);">+  ret="$(osmo_git_last_commits_tags "$1" "$2" "$3")"</span><br><span style="color: hsl(120, 100%, 40%);">+    echo "$ret" | awk '{print $1}'</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Print last tags for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(120, 100%, 40%);">+# "1.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+# $1: repository</span><br><span style="color: hsl(120, 100%, 40%);">+# $2: amount of commits to print (default: 1)</span><br><span style="color: hsl(120, 100%, 40%);">+# $3: string to print when there are no tags (default: empty string)</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_git_last_tags() {</span><br><span style="color: hsl(120, 100%, 40%);">+     ret="$(osmo_git_last_commits_tags "$1" "$2" "$3")"</span><br><span style="color: hsl(120, 100%, 40%);">+    echo "$ret" | cut -d/ -f 3</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/scripts/osmocom-list-commits.sh b/scripts/osmocom-list-commits.sh</span><br><span>index 886cb03..e0d3eb0 100755</span><br><span>--- a/scripts/osmocom-list-commits.sh</span><br><span>+++ b/scripts/osmocom-list-commits.sh</span><br><span>@@ -2,8 +2,8 @@</span><br><span> # Environment variables:</span><br><span> # * NO_HEADER: do not output the header line when set</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+. "$(dirname "$0")/common.sh"</span><br><span> FORMAT_STR="%-22s %-42s %9s %-40s %s\n"</span><br><span style="color: hsl(0, 100%, 40%);">-URL="https://git.osmocom.org"</span><br><span> REPOS="</span><br><span>   libasn1c</span><br><span>     libosmo-abis</span><br><span>@@ -27,43 +27,6 @@</span><br><span>    osmocom-bb</span><br><span> "</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-# Print commit of HEAD for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(0, 100%, 40%);">-# "f90496f577e78944ce8db1aa5b900477c1e479b0"</span><br><span style="color: hsl(0, 100%, 40%);">-# $1: repository</span><br><span style="color: hsl(0, 100%, 40%);">-get_head_commit() {</span><br><span style="color: hsl(0, 100%, 40%);">-    # git output:</span><br><span style="color: hsl(0, 100%, 40%);">-   # f90496f577e78944ce8db1aa5b900477c1e479b0        HEAD</span><br><span style="color: hsl(0, 100%, 40%);">-  ret="$(git ls-remote "$URL/$1" HEAD)"</span><br><span style="color: hsl(0, 100%, 40%);">-       ret="$(echo "$ret" | awk '{print $1}')"</span><br><span style="color: hsl(0, 100%, 40%);">-     echo "$ret"</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-# Print last tag and related commit for an Osmocom git repository, e.g.:</span><br><span style="color: hsl(0, 100%, 40%);">-# "ec798b89700dcca5c5b28edf1a1cd16ea311f30a        refs/tags/1.0.1"</span><br><span style="color: hsl(0, 100%, 40%);">-# Print "-" when no tags were found.</span><br><span style="color: hsl(0, 100%, 40%);">-# $1: repository</span><br><span style="color: hsl(0, 100%, 40%);">-get_last() {</span><br><span style="color: hsl(0, 100%, 40%);">-   # git output:</span><br><span style="color: hsl(0, 100%, 40%);">-   # ec798b89700dcca5c5b28edf1a1cd16ea311f30a        refs/tags/1.0.1</span><br><span style="color: hsl(0, 100%, 40%);">-       # eab5f594b0a7cf50ad97b039f73beff42cc8312a        refs/tags/1.0.1^{}</span><br><span style="color: hsl(0, 100%, 40%);">-    # ...</span><br><span style="color: hsl(0, 100%, 40%);">-   # 41e7cf115d4148a9f34fcb863b68b2d5370e335d        refs/tags/1.3.1^{}</span><br><span style="color: hsl(0, 100%, 40%);">-    # 8a9f12dc2f69bf3a4e861cc9a81b71bdc5f13180        refs/tags/3G_2016_09</span><br><span style="color: hsl(0, 100%, 40%);">-  # ee618ecbedec82dfd240334bc87d0d1c806477b0        refs/tags/debian/0.9.13-0_jrsantos.1</span><br><span style="color: hsl(0, 100%, 40%);">-  # a3fdd24af099b449c9856422eb099fb45a5595df        refs/tags/debian/0.9.13-0_jrsantos.1^{}</span><br><span style="color: hsl(0, 100%, 40%);">-       # ...</span><br><span style="color: hsl(0, 100%, 40%);">-   ret="$(git ls-remote --tags "$URL/$1")"</span><br><span style="color: hsl(0, 100%, 40%);">-     ret="$(echo "$ret" | grep 'refs/tags/[0-9.]*$' || true)"</span><br><span style="color: hsl(0, 100%, 40%);">-    ret="$(echo "$ret" | sort -V -t/ -k3)"</span><br><span style="color: hsl(0, 100%, 40%);">-      ret="$(echo "$ret" | tail -n 1)"</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    if [ -n "$ret" ]; then</span><br><span style="color: hsl(0, 100%, 40%);">-                echo "$ret"</span><br><span style="color: hsl(0, 100%, 40%);">-   else</span><br><span style="color: hsl(0, 100%, 40%);">-            echo "-"</span><br><span style="color: hsl(0, 100%, 40%);">-      fi</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> # Header</span><br><span> if [ -z "$NO_HEADER" ]; then</span><br><span>    printf "$FORMAT_STR" "# repository" "clone URL" "last tag" "last tag commit" "HEAD commit"</span><br><span>@@ -71,14 +34,13 @@</span><br><span> </span><br><span> # Table</span><br><span> for repo in $REPOS; do</span><br><span style="color: hsl(0, 100%, 40%);">-   last="$(get_last "$repo")"</span><br><span style="color: hsl(0, 100%, 40%);">-  last_tag="$(echo "$last" | cut -d/ -f 3)"</span><br><span style="color: hsl(0, 100%, 40%);">-   last_commit="$(echo "$last" | awk '{print $1}')"</span><br><span style="color: hsl(0, 100%, 40%);">-    head_commit="$(get_head_commit "$repo")"</span><br><span style="color: hsl(120, 100%, 40%);">+  last_tag="$(osmo_git_last_tags "$repo" 1 "-")"</span><br><span style="color: hsl(120, 100%, 40%);">+  last_commit="$(osmo_git_last_commits "$repo" 1 "-")"</span><br><span style="color: hsl(120, 100%, 40%);">+    head_commit="$(osmo_git_head_commit "$repo")"</span><br><span> </span><br><span>        printf "$FORMAT_STR" \</span><br><span>             "$repo.git" \</span><br><span style="color: hsl(0, 100%, 40%);">-         "$URL/$repo" \</span><br><span style="color: hsl(120, 100%, 40%);">+              "$OSMO_GIT_URL/$repo" \</span><br><span>            "$last_tag" \</span><br><span>              "$last_commit" \</span><br><span>           "$head_commit"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13412">change 13412</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13412"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ci </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I61be4cffb9275cabc1b253f0b298503ad0d3aea4 </div>
<div style="display:none"> Gerrit-Change-Number: 13412 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>