Files
fedora-dots/.local/state/noctalia/community-templates/fuzzel/apply.sh
T
2026-11-04 20:35:46 +01:00

34 lines
985 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
config_dir="${XDG_CONFIG_HOME:-$HOME/.config}"
config_file="$config_dir/fuzzel/fuzzel.ini"
include_line="include=$config_dir/fuzzel/themes/noctalia"
mkdir -p "$(dirname "$config_file")"
write_if_changed() {
local target="$1" tmp="$2"
if [ ! -e "$target" ] && [ ! -L "$target" ]; then
mv "$tmp" "$target"
return
fi
if ! cmp -s "$target" "$tmp"; then
cat "$tmp" >"$target"
fi
rm -f "$tmp"
}
if [ ! -f "$config_file" ]; then
echo "$include_line" >"$config_file"
elif grep -q "^$include_line$" "$config_file"; then
:
elif grep -q '^include=.*themes' "$config_file"; then
tmp_file="$(mktemp "${config_file}.tmp.XXXXXX")"
sed 's|^include=.*themes.*|'"$include_line"'|' "$config_file" >"$tmp_file"
write_if_changed "$config_file" "$tmp_file"
else
[ -s "$config_file" ] && [ -n "$(tail -c1 "$config_file")" ] && echo >>"$config_file"
echo "$include_line" >>"$config_file"
fi