An attempt at getting image data back
This commit is contained in:
110
spider-cam/libcamera/utils/hooks/pre-push
Executable file
110
spider-cam/libcamera/utils/hooks/pre-push
Executable file
@@ -0,0 +1,110 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# A hook script to prevent pushing unsuitable commits to the master or
|
||||
# integration branches. Criteria to determine unsuitable commits are listed
|
||||
# below.
|
||||
#
|
||||
# Information about the commits which are being pushed is supplied as lines to
|
||||
# the standard input in the form:
|
||||
#
|
||||
# <local ref> <local sha1> <remote ref> <remote sha1>
|
||||
|
||||
z40=0000000000000000000000000000000000000000
|
||||
|
||||
remote_name="$1"
|
||||
remote_url="$2"
|
||||
|
||||
while read -r local_ref local_sha remote_ref remote_sha
|
||||
do
|
||||
case "$remote_ref" in
|
||||
refs/heads/master)
|
||||
;;
|
||||
refs/heads/integration/*)
|
||||
;;
|
||||
*)
|
||||
continue
|
||||
esac
|
||||
|
||||
# If the remote branch gets deleted, there's nothing to check.
|
||||
if [ "$local_sha" = $z40 ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check if we are creating a new branch or updating an existing one.
|
||||
if [ "$remote_sha" = $z40 ]
|
||||
then
|
||||
if [ "$remote_ref" = "refs/heads/master" ]
|
||||
then
|
||||
# There are known invalid commits in the full history,
|
||||
# skip the checks if we are pushing the master branch
|
||||
# (for instance to an empty repository).
|
||||
continue
|
||||
else
|
||||
# We're pushing a new integration branch, check all
|
||||
# commits on top of the master branch.
|
||||
range="remotes/$remote_name/master..$local_sha"
|
||||
fi
|
||||
else
|
||||
# Update to existing branch, examine new commits only.
|
||||
range="$remote_sha..$local_sha"
|
||||
fi
|
||||
|
||||
#
|
||||
# Find invalid commits.
|
||||
#
|
||||
errors=0
|
||||
for commit in $(git rev-list "$range")
|
||||
do
|
||||
msg=$(git cat-file commit "$commit")
|
||||
|
||||
# 1. The commit message shall not contain a local changelog.
|
||||
if echo -E "$msg" | grep -q '^--- *$'
|
||||
then
|
||||
echo >&2 "Found local changelog in commit $commit"
|
||||
errors=$((errors+1))
|
||||
fi
|
||||
|
||||
# 2. The commit message shall have Signed-off-by lines
|
||||
# corresponding the committer and the author.
|
||||
committer=$(echo "$msg" | grep '^committer ' | head -1 | \
|
||||
cut -d ' ' -f 2- | rev | cut -d ' ' -f 3- | rev)
|
||||
if ! echo -E "$msg" | grep -F -q "Signed-off-by: ${committer}"
|
||||
then
|
||||
echo >&2 "Missing committer Signed-off-by in commit $commit"
|
||||
errors=$((errors+1))
|
||||
fi
|
||||
|
||||
author=$(echo "$msg" | grep '^author ' | head -1 | \
|
||||
cut -d ' ' -f 2- | rev | cut -d ' ' -f 3- | rev)
|
||||
if ! echo -E "$msg" | grep -F -q "Signed-off-by: ${author}"
|
||||
then
|
||||
echo >&2 "Missing author Signed-off-by in commit $commit"
|
||||
errors=$((errors+1))
|
||||
fi
|
||||
|
||||
# 3. A Reviewed-by or Acked-by is required.
|
||||
if ! echo -E "$msg" | grep -q '^\(Reviewed\|Acked\)-by: '
|
||||
then
|
||||
echo >&2 "No Reviewed-by or Acked-by in commit $commit"
|
||||
errors=$((errors+1))
|
||||
fi
|
||||
|
||||
# 4. The commit message shall not contain a Change-Id.
|
||||
if echo -E "$msg" | grep -q '^Change-Id:'
|
||||
then
|
||||
echo >&2 "Found Change-Id in commit $commit"
|
||||
errors=$((errors+1))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $errors != 0 ]
|
||||
then
|
||||
echo >&2 "Found $errors errors in $local_ref, not pushing"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user