Dotfiles_ArchAP/tools/build-slurp-keymap-guard

22 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# CONTRACT: build the pinned upstream release with the narrow keymap guard;
# install only in the user's libexec, never over the system package.
repo="$(cd -- "$(dirname -- "$0")/.." && pwd)"
source_dir="${XDG_CACHE_HOME:-$HOME/.cache}/labfy-slurp-v1.5.0"
binary="$HOME/.local/libexec/labfy-slurp"
if [[ ! -d "$source_dir/.git" ]]; then
git clone --depth 1 --branch v1.5.0 https://github.com/emersion/slurp.git "$source_dir"
fi
[[ "$(git -C "$source_dir" rev-parse HEAD)" == fc921b603ee02afff42aba9eb073e82fab900048 ]] || exit 1
if ! git -C "$source_dir" diff --quiet -- main.c; then
git -C "$source_dir" apply --reverse --check "$repo/tools/slurp-keymap-guard.patch"
else
patch -d "$source_dir" -p1 < "$repo/tools/slurp-keymap-guard.patch"
fi
meson setup "$source_dir/build" "$source_dir" -Dman-pages=disabled --reconfigure 2>/dev/null || \
meson setup "$source_dir/build" "$source_dir" -Dman-pages=disabled
ninja -C "$source_dir/build"
install -Dm755 "$source_dir/build/slurp" "$binary"
printf '%s\n' "$binary"