<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ci/+/24702">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">lint: add helper scripts<br><br>Add lint_diff.sh, which runs checkpatch on git diff to either HEAD~1 (if<br>the tree is clean) or HEAD. This can be used as pre-commit hook, and<br>it's what jenkins will run.<br><br>Add lint_all.sh, which runs checkpatch on a whole repository to test if<br>the rules we are checking for make sense in Osmocom context.<br><br>Related: OS#5087<br>Change-Id: I1d02c169b05fb05b87209a444a5ddb86efc99d04<br>---<br>A lint/lint_all.sh<br>A lint/lint_diff.sh<br>2 files changed, 81 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/02/24702/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/lint/lint_all.sh b/lint/lint_all.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..1c25578</span><br><span>--- /dev/null</span><br><span>+++ b/lint/lint_all.sh</span><br><span>@@ -0,0 +1,43 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh -e</span><br><span style="color: hsl(120, 100%, 40%);">+# Script to test if linting is sane by running it on a whole repository</span><br><span style="color: hsl(120, 100%, 40%);">+GIT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || true)"</span><br><span style="color: hsl(120, 100%, 40%);">+SCRIPT_DIR="$(dirname "$(realpath "$0")")"</span><br><span style="color: hsl(120, 100%, 40%);">+OUT=/tmp/lint_all_out</span><br><span style="color: hsl(120, 100%, 40%);">+TYPES="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo "Running find in $GIT_DIR"</span><br><span style="color: hsl(120, 100%, 40%);">+files=$(find \</span><br><span style="color: hsl(120, 100%, 40%);">+        "$GIT_DIR" \</span><br><span style="color: hsl(120, 100%, 40%);">+        -name '*.c' \</span><br><span style="color: hsl(120, 100%, 40%);">+ -o -name '*.h' \</span><br><span style="color: hsl(120, 100%, 40%);">+      -o -name '*.cpp' \</span><br><span style="color: hsl(120, 100%, 40%);">+    -o -name '*.hpp')</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if [ -n "$TYPES" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+       echo "Running checkpath with --types="$TYPES" in $GIT_DIR"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      "$SCRIPT_DIR"/checkpatch/checkpatch.pl \</span><br><span style="color: hsl(120, 100%, 40%);">+            -f \</span><br><span style="color: hsl(120, 100%, 40%);">+          --color=always \</span><br><span style="color: hsl(120, 100%, 40%);">+              --no-summary \</span><br><span style="color: hsl(120, 100%, 40%);">+                --no-tree \</span><br><span style="color: hsl(120, 100%, 40%);">+           --show-types \</span><br><span style="color: hsl(120, 100%, 40%);">+                --terse \</span><br><span style="color: hsl(120, 100%, 40%);">+             --types="$TYPES" \</span><br><span style="color: hsl(120, 100%, 40%);">+          $files \</span><br><span style="color: hsl(120, 100%, 40%);">+              | tee "$OUT"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+        echo "Running checkpath in $GIT_DIR"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      "$SCRIPT_DIR"/checkpatch/checkpatch_osmo.sh \</span><br><span style="color: hsl(120, 100%, 40%);">+               -f \</span><br><span style="color: hsl(120, 100%, 40%);">+          --color=always \</span><br><span style="color: hsl(120, 100%, 40%);">+              --no-summary \</span><br><span style="color: hsl(120, 100%, 40%);">+                --show-types \</span><br><span style="color: hsl(120, 100%, 40%);">+                --terse \</span><br><span style="color: hsl(120, 100%, 40%);">+             $files \</span><br><span style="color: hsl(120, 100%, 40%);">+              | tee "$OUT"</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%);">+wc -l "$OUT"</span><br><span>diff --git a/lint/lint_diff.sh b/lint/lint_diff.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..f8daab7</span><br><span>--- /dev/null</span><br><span>+++ b/lint/lint_diff.sh</span><br><span>@@ -0,0 +1,38 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh -e</span><br><span style="color: hsl(120, 100%, 40%);">+# Jenkins runs this script on submitted gerrit patches. Can be used as git pre-commit hook.</span><br><span style="color: hsl(120, 100%, 40%);">+COMMIT="$1"</span><br><span style="color: hsl(120, 100%, 40%);">+GIT_DIR="$(git rev-parse --show-toplevel 2>/dev/null || true)"</span><br><span style="color: hsl(120, 100%, 40%);">+SCRIPT_DIR="$(dirname "$(realpath "$0")")"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+if [ -z "$GIT_DIR" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+       echo "ERROR: path is not a git repository: $PWD"</span><br><span style="color: hsl(120, 100%, 40%);">+    exit 1</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%);">+if [ -z "$COMMIT" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+     # Clean worktree: diff last commit against the one before</span><br><span style="color: hsl(120, 100%, 40%);">+     COMMIT="HEAD~1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if [ -n "$(git status --porcelain)" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+         # Dirty worktree: diff uncommitted changes against last commit</span><br><span style="color: hsl(120, 100%, 40%);">+                COMMIT="HEAD"</span><br><span style="color: hsl(120, 100%, 40%);">+       fi</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%);">+echo "Running checkpatch on 'git diff $COMMIT'..."</span><br><span style="color: hsl(120, 100%, 40%);">+echo</span><br><span style="color: hsl(120, 100%, 40%);">+if git diff -U0 "$COMMIT" | "$SCRIPT_DIR/checkpatch/checkpatch_osmo.sh" - \</span><br><span style="color: hsl(120, 100%, 40%);">+ --color=always \</span><br><span style="color: hsl(120, 100%, 40%);">+      --mailback \</span><br><span style="color: hsl(120, 100%, 40%);">+  --show-types \</span><br><span style="color: hsl(120, 100%, 40%);">+        --showfile \</span><br><span style="color: hsl(120, 100%, 40%);">+  --terse</span><br><span style="color: hsl(120, 100%, 40%);">+then</span><br><span style="color: hsl(120, 100%, 40%);">+ exit 0</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%);">+echo</span><br><span style="color: hsl(120, 100%, 40%);">+echo "Please fix the linting errors above. More information:"</span><br><span style="color: hsl(120, 100%, 40%);">+echo "https://osmocom.org/projects/cellular-infrastructure/wiki/Linting"</span><br><span style="color: hsl(120, 100%, 40%);">+echo</span><br><span style="color: hsl(120, 100%, 40%);">+exit 1</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ci/+/24702">change 24702</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/c/osmo-ci/+/24702"/><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-Change-Id: I1d02c169b05fb05b87209a444a5ddb86efc99d04 </div>
<div style="display:none"> Gerrit-Change-Number: 24702 </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-MessageType: newchange </div>