#!/bin/sh

# Use the precompiler to allow for `xrdb -nocpp -merge ~/.Xresources`.
# Inspiration from https://github.com/dolmen/Xresources.edit/blob/1be4f5601b3d4e8befa043386288c64e724ed746/Xresources.edit

fname=.Xresources
ext=src
force=

# Initial setup: move $fname to $fname.$ext
if [ ! -f "$HOME/$fname.$ext" ]; then
	cat "$HOME/$fname" > "$HOME/$fname.$ext"

	# Make $fname non-writable to discourage direct editing
	chmod a-wx "$HOME/$fname"
fi

# Check mtime
if [ -f "$HOME/$fname" -a "$HOME/$fname" -nt "$HOME/$fname.$ext" ]; then
	{
		echo "~/$fname is more recent than ~/$fname.$ext"
		echo "You have to fix this manually."
		echo "e.g. touch ~/$fname.$ext"
	} >&2
	exit 1
fi


# Run cpp and save the result as ~/$fname
[ -e "$HOME/$fname" ] && chmod u+w "$HOME/$fname"

{
	echo '! *************************************************'
	echo "! Do not edit ~/$fname, but ~/$fname.$ext"
	echo '! *************************************************'
	echo '! vim:set ft=xdefaults:'
	echo '!'
} > "$HOME/$fname"

cpp "$HOME/$fname.$ext" | tee -a "$HOME/$fname"
res=$?

# Make $fname non-writable to discourage direct editing
chmod a-wx "$HOME/$fname"
exit $res
