always re-generate .git in lbmk
in release archives, .git is excluded but the version and versiondate files are included. from these, the git history is re-created with the exact date (but not taking into account timezone, at present). in this way, lbmk will have git history in a release archive. some build systems, like coreboot, prefer that there be git history available, so this is a nice workaround on those build systems. Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
52c9416b19
commit
54a05fc167
1
build
1
build
|
@ -46,6 +46,7 @@ main()
|
|||
|
||||
check_git
|
||||
check_project "fail"
|
||||
git_init xx_ fail
|
||||
|
||||
execute_command $@
|
||||
lbmk_exit 0
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
|
||||
|
||||
version=""; versiondate=""; projectname=""
|
||||
version=""; versiondate=""; projectname=""; _nogit=""
|
||||
|
||||
x_() {
|
||||
[ $# -lt 1 ] || ${@} || err_exit err ${@}
|
||||
|
@ -27,6 +27,20 @@ check_git()
|
|||
git_err "git config --global user.email \"john.doe@example.com\""
|
||||
}
|
||||
|
||||
# release archives contain .gitignore, but not .git.
|
||||
# lbmk can be run from lbmk.git, or an archive.
|
||||
git_init()
|
||||
{
|
||||
[ -L ".git" ] && ${2} "Reference .git is a symlink"
|
||||
[ -e ".git" ] && return 0
|
||||
eval "$(setvars "$(date -Rd @${versiondate})" cdate _nogit)"
|
||||
|
||||
${1} git init
|
||||
${1} git add -A .
|
||||
${1} git commit -m "${projectname} ${version}" --date "${cdate}"
|
||||
${1} git tag -a "${version}" -m "${projectname} ${version}"
|
||||
}
|
||||
|
||||
git_err()
|
||||
{
|
||||
printf "You need to set git name/email, like so:\n%s\n\n" "${1}" 1>&2
|
||||
|
|
|
@ -8,7 +8,7 @@ set -u -e
|
|||
. "include/err.sh"
|
||||
. "include/option.sh"
|
||||
|
||||
eval "$(setvars "" vdir relname src_dirname srcdir _nogit _xm target romdir \
|
||||
eval "$(setvars "" vdir relname src_dirname srcdir _xm target romdir \
|
||||
microcode_required mode)"
|
||||
|
||||
main()
|
||||
|
@ -37,29 +37,10 @@ main()
|
|||
mkvdir()
|
||||
{
|
||||
mkdir -p "${vdir}" || err "mkvdir: !mkdir -p \"${vdir}\""
|
||||
|
||||
git_init || err "mkvdir: !git_init \"${vdir}\""
|
||||
git clone . "${srcdir}" || err "mkdir: !gitclone \"${srcdir}\""
|
||||
[ -z "${_nogit}" ] || x_ rm -Rf ".git"
|
||||
|
||||
rm -Rf "${srcdir}/.git" || err "mkvdir: !rm -Rf ${srcdir}/.git"
|
||||
insert_version_files "${srcdir}" || err "mkvdir ${srcdir}: versionfile"
|
||||
}
|
||||
|
||||
# release archives contain .gitignore, but not .git.
|
||||
# this script can be run from lbmk.git, or an archive.
|
||||
git_init()
|
||||
{
|
||||
[ -L ".git" ] && err "Reference .git is a symlink"
|
||||
[ -e ".git" ] && return 0
|
||||
eval "$(setvars "$(date -Rd @${versiondate})" cdate _nogit)"
|
||||
|
||||
git init || return 1
|
||||
git add -A . || return 1
|
||||
git commit -m "${projectname} ${version}" --date "${cdate}" || return 1
|
||||
git tag -a "${version}" -m "${projectname} ${version}" || return 1
|
||||
}
|
||||
|
||||
build_release()
|
||||
{
|
||||
_xm="build_release ${vdir}"
|
||||
|
@ -94,7 +75,7 @@ fetch_trees()
|
|||
|
||||
find . -name ".git" -exec rm -Rf {} + || err "${_xm}: rm .git"
|
||||
find . -name ".gitmodules" -exec rm -Rf {} + || err "${_xm}: rm .gitmod"
|
||||
x_ rm -Rf tmp
|
||||
x_ rm -Rf tmp .git
|
||||
}
|
||||
|
||||
mkrom_images()
|
||||
|
|
Loading…
Reference in New Issue