*: Move die() into .local/bin/helpers.sh

The function `die` was redundantly implemented in various files.

Move the function into .local/bin/helpers.sh and source that where
previously implemented.

Also prepend the program's name to the message and always terminate the
message with a newline. The newline was previously needed for a small
but unnecessary hack that prevented the need of the `[ -z "$1" ]` test.
This commit is contained in:
2022-09-22 14:29:35 +02:00
parent d7c9bda8a7
commit 7666086dba
5 changed files with 31 additions and 27 deletions

View File

@@ -1,18 +1,16 @@
#!/bin/sh
die() {
printf "$1" >&2
exit ${2:-1}
}
# Source die()
. "$HOME"/.local/bin/helpers.sh
remote="$(git remote -v | grep -m1 "druckdev/dotfiles" | cut -f1)"
: "${remote:=origin}"
url="$(git remote get-url "$remote")"
! printf "$url" | grep -q '^git@' || die "Using ssh already.\n" 0
! printf "$url" | grep -q '^git@' || die "Using ssh already." 0
host="$(printf "$url" | cut -d/ -f3)"
grep -q "$host" "$HOME"/.ssh/known_hosts || die "No ssh key for $host found.\n"
grep -q "$host" "$HOME"/.ssh/known_hosts || die "No ssh key for $host found."
ssh_url="$(printf "$url" | sed 's_^https\?://_git@_;s_/_:_')"
git remote set-url "$remote" "$ssh_url"
die "Set $remote remote url to $ssh_url\n" $?
die "Set $remote remote url to $ssh_url" $?

View File

@@ -9,10 +9,8 @@
#
# To enable this hook, save this file in ".git/hooks/commit-msg".
die() {
printf "$1" >&2
exit ${2:-1}
}
# Source die()
. "$HOME"/.local/bin/helpers.sh
subject="$(head -1 "$1")"
# Ignore "fixup! " and "squash! " prefix' added by `git-commit`
@@ -39,7 +37,7 @@ body="$(
/^[^${git_comment_char/auto/\#}]/p"
)"
[[ ${#subject} -le 50 ]] || die "Subject too long. (<= 50)\n"
[[ ${#subject} -le 50 ]] || die "Subject too long. (<= 50)"
# The subject line has to match "${pats[@]}", but to be more verbose different
# error messages are printed for the different 'levels' of the pattern.
@@ -54,7 +52,7 @@ msg=(
"Start subject with a capital letter.\n"
"Remove punctuation mark from end.\n"
)
[[ ${#msg[@]} -ge ${#pats[@]} ]] || die "Something went wrong internally.\n"
[[ ${#msg[@]} -ge ${#pats[@]} ]] || die "Something went wrong internally."
for ((i = 0; i < ${#pats[@]}; i++)); do
if ! grep -qE "$(printf "%s" "${pats[@]:0:$i+1}")" <<<"$subject"; then
die "${msg[$i]}"
@@ -65,6 +63,6 @@ BKP_IFS="$IFS"
IFS='
'
for line in $body; do
[[ ${#line} -le 72 ]] || die "Body lines too long. (<= 72)\n"
[[ ${#line} -le 72 ]] || die "Body lines too long. (<= 72)"
done
IFS="$BKP_IFS"

View File

@@ -6,10 +6,8 @@
#
# To enable this hook, save this file in ".git/hooks/pre-commit".
die() {
printf "$1" >&2
exit ${2:-1}
}
# Source die()
. "$HOME"/.local/bin/helpers.sh
if git rev-parse --verify HEAD >/dev/null 2>&1; then
against=HEAD
@@ -35,8 +33,7 @@ if [ "$allownonascii" != "true" ]; then
| wc -c
)
if [ $num_nonascii != 0 ]; then
printf "Rename files to only include ASCII characters.\n" >&2
die "Or set hooks.allownonascii to true.\n"
die "Rename files with ASCII characters only, or enable hooks.allownonascii"
fi
fi