#!/bin/bash source "$(dirname "${BASH_SOURCE[0]}")/base-test.sh" tmpdir=$(mktemp -d) trap 'rm -rf "$tmpdir"' EXIT home="$tmpdir/home" omarchy_path="$tmpdir/omarchy" mkdir -p "$home/.config/hypr" "$omarchy_path/config/hypr" cat >"$omarchy_path/config/hypr/bindings.lua" <<'EOF' -- refreshed from OMARCHY_PATH EOF cat >"$home/.config/hypr/bindings.lua" <<'EOF' -- existing user config EOF HOME="$home" OMARCHY_PATH="$omarchy_path" "$ROOT/bin/omarchy-refresh-config" hypr/bindings.lua >/dev/null cmp -s "$omarchy_path/config/hypr/bindings.lua" "$home/.config/hypr/bindings.lua" || fail "refresh-config copies from OMARCHY_PATH/config" backup=$(find "$home/.config/hypr" -name 'bindings.lua.bak.*' -print -quit) [[ -n $backup ]] || fail "refresh-config backs up replaced user config" grep -Fq -- '-- existing user config' "$backup" || fail "refresh-config backup contains previous user config" pass "refresh-config copies from OMARCHY_PATH/config and backs up existing files" if HOME="$home" OMARCHY_PATH="$omarchy_path" "$ROOT/bin/omarchy-refresh-config" hypr/missing.lua >"$tmpdir/out" 2>"$tmpdir/err"; then fail "refresh-config rejects configs missing from OMARCHY_PATH/config" fi grep -Fq 'Not a shipped user config: hypr/missing.lua' "$tmpdir/err" || fail "refresh-config reports missing shipped config" pass "refresh-config validates against OMARCHY_PATH/config"