summaryrefslogtreecommitdiff
path: root/.gitcheck
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-08-24 01:08:08 +0100
committerLeah Rowe <leah@libreboot.org>2023-08-24 01:09:54 +0100
commitbe7a5b0ca24d08158ec22b6e487301c6b164eadb (patch)
tree1b4ae55a6d2563f477674e80ed5d59de78303461 /.gitcheck
parent3a5ba57f5e2366f035b12812062df593e78ec2ab (diff)
.gitcheck: must stricter error handling
we also run it in releases, so to compensate: it now checks for .git/, but only in project directories, not the main lbmk directory of the git repository or a release. this is because in a release, it's possible that the user may still delete coreboot/ directories and re-download coreboot trees this is not intended, but we must not assume that users use libreboot the way it's intended! "much stricter" because there was previously none, intentionally, due to the above fact. the checking of .git/ should mitigate this (the script will exit with zero status if it isn't there) Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to '.gitcheck')
-rwxr-xr-x.gitcheck37
1 files changed, 17 insertions, 20 deletions
diff --git a/.gitcheck b/.gitcheck
index 75c020cb..8a2b5a90 100755
--- a/.gitcheck
+++ b/.gitcheck
@@ -3,6 +3,8 @@
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
# SPDX-License-Identifier: GPL-3.0-only
+. "include/err.sh"
+
git_name="lbmkplaceholder"
git_email="placeholder@lbmkplaceholder.com"
@@ -12,8 +14,7 @@ main()
if [ "${1}" = "clean" ]; then
clean 1> /dev/null
else
- printf "%s: Unsupported argument\n" $0
- exit 1
+ err "unsupported argument, \"${1}\""
fi
else
set_placeholders 1> /dev/null
@@ -25,13 +26,10 @@ set_placeholders()
set_git_credentials
# Check coreboot as well to prevent errors during building
- if [ ! -d coreboot ]; then
- return
- fi
+ [ -d coreboot ] || return 0
for x in coreboot/*; do
- if [ ! -d "${x}" ]; then
- continue
- fi
+ [ -d "${x}" ] || continue
+ [ -e "${x}/.git" ] || break
(
cd "${x}"
set_git_credentials
@@ -43,10 +41,10 @@ set_git_credentials()
{
# Check if username and or email is set.
if ! git config user.name || git config user.email ; then
- git config user.name \
- || git config user.name "${git_name}"
- git config user.email \
- || git config user.email "${git_email}"
+ git config user.name || git config user.name "${git_name}" || \
+ err "cannot set local git user.name"
+ git config user.email || git config user.email "${git_email}" \
+ || err "cannot set local git user.email"
fi
}
@@ -54,13 +52,10 @@ clean()
{
unset_placeholders
- if [ ! -d coreboot ]; then
- return
- fi
+ [ -d coreboot ] || return 0
for x in coreboot/*; do
- if [ ! -d "${x}" ]; then
- continue
- fi
+ [ -d "${x}" ] || continue
+ [ -e "${x}/.git" ] || break
(
cd "${x}"
unset_placeholders
@@ -71,11 +66,13 @@ clean()
unset_placeholders()
{
if [ "$(git config user.name)" = "${git_name}" ]; then
- git config --unset user.name
+ git config --unset user.name || \
+ err "cannot unset local git user.name"
fi
if [ "$(git config user.email)" = "${git_email}" ]; then
- git config --unset user.email
+ git config --unset user.email || \
+ err "cannot unset local git user.email"
fi
}