about summary refs log tree commit diff stats
path: root/pkgs/by-name/gi/git-cm/git-commit.sh
blob: 2204e4d637fb705d02d703b335fb974dde86ee9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env dash

# shellcheck source=/dev/null
SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH

ROOT="$(git rev-parse --show-toplevel)"

# Take first line from previous commit
if [ -f "$ROOT/.git/COMMIT_EDITMSG" ]; then
    sed '1s/\(.*\)\((.*)\)\?\(:.*\)/\1\2: /;1p;d' "$ROOT/.git/COMMIT_EDITMSG" >"$ROOT/.git/COMMIT_TEMPLATE"
else
    printf "\n" >"$ROOT/.git/COMMIT_TEMPLATE"
fi
sed '1d' "$(git config commit.template)" >>"$ROOT/.git/COMMIT_TEMPLATE"

git commit --template "$ROOT/.git/COMMIT_TEMPLATE" --verbose "$@"

# vim: ft=sh