mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-03-25 21:39:03 +02:00
don't run it directly at the bottom of err.sh, because otherwise the version and versiondate files will be generated when running "./build dependencies distroname" which would then create these files, but as root because the user runs that specific command as root. the rest of lbmk, for any other command, prevents use of the root account, so running check_project during "./build dependencies distroname" will cause the build system to fail (because as non-root user, the user will run lbmk and it will try to update those files, and fail because it can't, due to lack of permissions) this patch fixes the issue, by only generating those files if the user is *not* root Signed-off-by: Leah Rowe <leah@libreboot.org>
81 lines
2.0 KiB
Bash
Executable File
81 lines
2.0 KiB
Bash
Executable File
# SPDX-License-Identifier: MIT
|
|
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
|
|
|
|
version=""; versiondate=""; projectname=""; _nogit=""
|
|
|
|
x_() {
|
|
[ $# -lt 1 ] || ${@} || err_exit err ${@}
|
|
}
|
|
xx_() {
|
|
[ $# -lt 1 ] || ${@} || err_exit fail ${@}
|
|
}
|
|
|
|
err_exit()
|
|
{
|
|
_fail="${1}" && shift 1
|
|
echo "Non-zero exit: $@"
|
|
$_fail "Unhandled error"
|
|
}
|
|
|
|
check_git()
|
|
{
|
|
which git 1>/dev/null 2>/dev/null || \
|
|
git_err "git not installed. please install git-scm."
|
|
git config --global user.name 1>/dev/null 2>/dev/null || \
|
|
git_err "git config --global user.name \"John Doe\""
|
|
git config --global user.email 1>/dev/null 2>/dev/null || \
|
|
git_err "git config --global user.email \"john.doe@example.com\""
|
|
}
|
|
|
|
git_err()
|
|
{
|
|
printf "You need to set git name/email, like so:\n%s\n\n" "${1}" 1>&2
|
|
fail "Git name/email not configured" || \
|
|
err "Git name/email not configured"
|
|
}
|
|
|
|
check_project()
|
|
{
|
|
read projectname < projectname || :
|
|
|
|
[ ! -f version ] || read version < version || :
|
|
version_="${version}"
|
|
[ ! -e ".git" ] || version="$(git describe --tags HEAD 2>&1)" || \
|
|
version="git-$(git rev-parse HEAD 2>&1)" || version="${version_}"
|
|
|
|
[ ! -f versiondate ] || read versiondate < versiondate || :
|
|
versiondate_="${versiondate}"
|
|
[ ! -e ".git" ] || versiondate="$(git show --no-patch --no-notes \
|
|
--pretty='%ct' HEAD)" || versiondate="${versiondate_}"
|
|
|
|
[ ! -z ${versiondate} ] || fail "Unknown version date" || \
|
|
err "Unknown version date"
|
|
[ ! -z ${version} ] || fail "Unknown version" || \
|
|
err "Unknown version"
|
|
[ ! -z ${projectname} ] || fail "Unknown project" || \
|
|
err "Unknown project"
|
|
|
|
xx_ printf "%s\n" "${version}" > version || \
|
|
x_ printf "%s\n" "${version}" > version
|
|
xx_ printf "%s\n" "${versiondate}" > versiondate || \
|
|
x_ printf "%s\n" "${versiondate}" > versiondate
|
|
}
|
|
|
|
setvars()
|
|
{
|
|
_setvars=""
|
|
[ $# -lt 2 ] && err "setvars: too few arguments"
|
|
val="${1}"
|
|
shift 1
|
|
for var in $@; do
|
|
_setvars="${var}=\"${val}\"; ${_setvars}"
|
|
done
|
|
printf "%s\n" "${_setvars% }"
|
|
}
|
|
|
|
err()
|
|
{
|
|
printf "ERROR %s: %s\n" "${0}" "${1}" 1>&2
|
|
exit 1
|
|
}
|