#!/usr/bin/env bash | |
# Adapted from https://gist.github.com/thoughtpolice/8f2fd36ae17cd11b8e7bd93a70e31ad6 | |
set -euo pipefail | |
CID=$(jj log --no-graph -r @ -T "change_id" | sha256sum | head -c 40) | |
CHGSTR="Change-Id: I${CID}" | |
contents=$(<"$1") | |
readarray -t lines <<<"$contents" | |
body='' | |
last='' | |
for x in "${lines[@]}"; do | |
[[ "$x" =~ ^"JJ:" ]] && continue | |
[[ "$x" =~ ^"Change-Id:" ]] && continue | |
[[ "$x" == '' ]] && [[ "$last" == '' ]] && continue | |
last="$x" | |
body+="$x\n" | |
done | |
body+="$CHGSTR\n" | |
if [[ "$body" == "$CHGSTR\n" ]]; then | |
body="\n\n$body" | |
fi | |
t=$(mktemp) | |
printf "$body" > "$t" | |
mv "$t" "$1" | |
exec nvim "$1" |