#!/usr/bin/env bash ## ## SPDX-License-Identifier: GPL-2.0-only # In the hooks, use the same `make` tool as used when running `make gitconfig`, # e.g. `remake gitconfig` will set `remake` to be run by the hooks. MAKE="${1:-make}" if ! { cdup="$(git rev-parse --show-cdup 2>/dev/null)" && [ -z "${cdup}" ]; } then echo "Error: Not in root of a git repository" exit 1 fi coreboot_hooks=$(git rev-parse --git-path hooks) mkdir -p "${coreboot_hooks}" for hook in commit-msg pre-commit ; do if [ util/gitconfig/${hook} -nt "${coreboot_hooks}/${hook}" ] \ || [ ! -x "${coreboot_hooks}/${hook}" ] then sed -e "s,%MAKE%,${MAKE},g" util/gitconfig/$hook \ > "${coreboot_hooks}/${hook}" chmod +x "${coreboot_hooks}/${hook}" fi done # Now set up the hooks for 3rdparty/ for submodule in 3rdparty/blobs libhwbase libgfxinit; do hooks=$(git -C "$(git config --file .gitmodules --get \ submodule.${submodule}.path)" rev-parse --git-path hooks) if [ -d "${hooks}" ]; then if [ util/gitconfig/commit-msg -nt "${hooks}/commit-msg" ] \ || [ ! -x "${hooks}/commit-msg" ] then sed -e "s,%MAKE%,${MAKE},g" util/gitconfig/commit-msg \ > "${hooks}/commit-msg" chmod +x "${hooks}/commit-msg" fi fi done for d in 3rdparty/{blobs,libhwbase,libgfxinit}; do if [ -d $d ]; then (cd $d || exit 1 git config remote.origin.push HEAD:refs/for/main) fi done git config remote.origin.push HEAD:refs/for/main git config alias.sup "!git submodule update --remote --rebase && \ git submodule update --init --checkout" git config alias.sup-destroy "!git submodule deinit --all --force; \ git submodule update --init --checkout" { git config --includes user.name && \ git config --includes user.email; } >/dev/null || \ { cat <<-EOMSG Please configure your name and email in git: git config --global user.name "Your Name Comes Here" git config --global user.email your.email@example.com EOMSG exit 1; }