#!/bin/sh -e
#
# Copyright (C) 2008  Grigory Batalov <bga@altlinux.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

progname=$(basename "$0")
usage="Usage: $progname generate WHAT
The generate action recreates respective config files from templates.

 generate language	produce both language.dat and language.def
 generate language.dat	produce language.dat
 generate language.def	produce language.def
 generate fmtutil	produce fmtutil.cnf
 generate updmap 	produce updmap.cfg

Other actions are not supported in the ALT Linux version of $progname."

generate()
{
	CHECKFILE="$CNFDIR/00-$CONFIG"
	if ! [ -r "$CHECKFILE" ] ; then
        	echo "$progname: cannot read $CHECKFILE" >&2
	        exit 1
	fi
	TARDIR=`dirname "$TARGET"`
	[ -d "$TARDIR" ] || mkdir -p "$TARDIR"
	cat "$CNFDIR"/*."$EXT" > "$TARGET"
	$COMMAND ||:
}

set_lang_dat ()
{
	CNFDIR="/etc/texmf/language.d"
	EXT="dat"
	CONFIG="language.dat"
	TARGET="/var/cache/texmf/tex/generic/config/$CONFIG"
	COMMAND="fmtutil-sys --byhyphen $TARGET"
}

set_lang_def ()
{
	CNFDIR="/etc/texmf/language.d"
	EXT="def"
	CONFIG="language.def"
	TARGET="/var/cache/texmf/tex/generic/config/$CONFIG"
	COMMAND="fmtutil-sys --byhyphen $TARGET"
}

set_fmtutil()
{
	CNFDIR="/etc/texmf/fmt.d"
	EXT="cnf"
	CONFIG="fmtutil.cnf"
	TARGET="/var/cache/texmf/web2c/$CONFIG"
	COMMAND="fmtutil-sys --missing"
}

set_updmap()
{
	CNFDIR="/etc/texmf/updmap.d"
	EXT="cfg"
	CONFIG="updmap.cfg"
	TARGET="/var/cache/texmf/web2c/$CONFIG"
	COMMAND="updmap-sys"
}

[ "$1" != "generate" ] && echo "$usage" && exit 1
case "$2" in
	language) set_lang_dat; generate; set_lang_def; generate;;
	language.dat) set_lang_dat; generate;;
	language.def) set_lang_def; generate;;
	fmtutil) set_fmtutil; generate;;
	updmap) set_updmap; generate;;
	*) echo "$usage"; exit 1 ;;
esac
