From cf079dbd1775bb6270ee1cd8d36ce6c8aaa5a17c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 15 Sep 2026 10:04:53 +0100 Subject: [PATCH] init.sh: re-initialise upstream src .git we have git-clean in use for projects, but that only affects lbmk.git now we re-initialise .git in upstream projects, when .git is missing. this ensures consistent cleaning behaviour between lbmk.git and the libreboot releases. Signed-off-by: Leah Rowe --- include/env/init.sh | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/include/env/init.sh b/include/env/init.sh index ffd03407..74ad8166 100644 --- a/include/env/init.sh +++ b/include/env/init.sh @@ -356,21 +356,49 @@ git_init() "git_init" "$@"; : done - [ -L ".git" ] && \ + git_init_src . + fx_ git_init_src x_ find src -maxdepth 1 -mindepth 1 -type d +} + +git_init_src() +{ + gitdir="${1-}" + + [ -z "$gitdir" ] && \ + err "Invalid argument" git_init_src "$@" + [ -L "$gitdir/.git" ] && \ err "'$xbmkpwd/.git' is a symlink" "git_init" "$@" - [ -e ".git" ] && \ + [ -e "$gitdir/.git" ] && \ return 0 + git_projectname="${gitdir#*/}" + git_treename="${git_projectname#*/}" + [ "$git_projectname" = "${git_projectname#*/}" ] && \ + git_treename="" + + git_projectname="${git_projectname%%/*}" + git_treename="${git_treename%%*/}" + + if ! singletree "$git_projectname"; then + if [ -z "$git_treename" ]; then + fx_ git_init_src x_ find "$gitdir" -maxdepth 1 \ + -mindepth 1 -type d + return 0 + fi + fi + ( export GIT_COMMITTER_DATE="@$versiondate +0000" export GIT_AUTHOR_DATE="@$versiondate +0000" - x_ git init 1>/dev/null 2>/dev/null - x_ git add -A . 1>/dev/null 2>/dev/null - x_ git -c user.name="xbmk" -c user.email="xbmk@example.com" \ - commit -m "$projectname $version" \ + x_ git -C "$gitdir" init 1>/dev/null 2>/dev/null + x_ git -C "$gitdir" add -A . 1>/dev/null 2>/dev/null + x_ git -C "$gitdir" -c user.name="xbmk" \ + -c user.email="xbmk@example.com" \ + commit -m "$projectname $version $gitdir" \ --author="xbmk " 1>/dev/null 2>/dev/null - x_ git -c user.name="xbmk" -c user.email="xbmk@example.com" \ + x_ git -C "$gitdir" -c user.name="xbmk" \ + -c user.email="xbmk@example.com" \ tag -a "$version" -m "$projectname $version" \ 1>/dev/null 2>/dev/null; :