#!/bin/sh

if [ $# -gt 1 ]; then
  echo "$0 [x11-root]"
  exit 0
fi

if [ $# -eq 1 ]; then
  RPM_BUILD_ROOT=$1
fi

mkdir -p $RPM_BUILD_ROOT/var/X11R6/compose-cache

tmpfile=$(mktemp /tmp/Xvfb.log.XXXXXXXXXX)
$RPM_BUILD_ROOT/usr/X11R6/bin/Xvfb \
  -fp $RPM_BUILD_ROOT/usr/X11R6/lib/X11/fonts/misc/ \
  -sp $RPM_BUILD_ROOT/etc/X11/xserver/SecurityPolicy \
  -co $RPM_BUILD_ROOT/usr/X11R6/lib/X11/rgb \
  :99 &> $tmpfile &
trap "kill $!; rm $tmpfile || true" EXIT

export DISPLAY=:99
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT/usr/X11R6/lib64:$RPM_BUILD_ROOT/usr/X11R6/lib
export XLOCALEDIR=$RPM_BUILD_ROOT/usr/X11R6/lib/X11/locale/
sleep 5
usr/X11R6/bin/xbiff &> /dev/null &

pushd $RPM_BUILD_ROOT/
# Auto-create one .UTF-8 local cache per compose file - nuke \.UTF-8 for createing one local cache w/o looking at locale for encoding
#perl -e 'while (<>) { if (/^([^#]\S+[^:\s])\s+(\S+\.UTF-8)\s*$/) { $l{$1}=$2; } } foreach $i (keys %l) { print "usr/X11R6/bin/mkcomposecache \"$l{$i}\" \"usr/X11R6/lib/X11/locale/$i\" \"var/X11R6/compose-cache\" \"/usr/X11R6/lib/X11/locale/$i\" \n"; }' usr/X11R6/lib/X11/locale/compose.dir | sh
# Auto-create local cache files for all compose entries
#perl -e 'while (<>) { if (/^([^#]\S+[^:\s])\s+(\S+)\s*$/) { $i=$1; $l=$2; print "mkdir -p \"blub/$l\"\n/space/mhopf/INSTALLED/xorg_cvs_static/bin/mkcomposecache \"$l\" \"/usr/X11R6/lib/X11/locale/$i\" \"blub/$l\" \"/usr/X11R6/lib/X11/locale/$i\" \n"; } }' /usr/X11R6/lib/X11/locale/compose.dir

usr/X11R6/bin/mkcomposecache "en_US.UTF-8" "usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose" "var/X11R6/compose-cache" "/usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose"
usr/X11R6/bin/mkcomposecache "pt_BR.UTF-8" "usr/X11R6/lib/X11/locale/pt_BR.UTF-8/Compose" "var/X11R6/compose-cache" "/usr/X11R6/lib/X11/locale/pt_BR.UTF-8/Compose"
usr/X11R6/bin/mkcomposecache "el_GR.UTF-8" "usr/X11R6/lib/X11/locale/el_GR.UTF-8/Compose" "var/X11R6/compose-cache" "/usr/X11R6/lib/X11/locale/el_GR.UTF-8/Compose"

popd

chmod 444 $RPM_BUILD_ROOT/var/X11R6/compose-cache/*
