#!/bin/bash
set -x
file="$1"
if [ ! -f "$file" ]; then
	echo "Usage: $0 <file> <lang> <name>"
	exit 150
fi
lang=${2:-es}
name=${3:-}

tmp_file=$(mktemp)
basename=$(basename "${file}")
if [ "${basename}" == "qet_directory" ]; then
	root_elmt='qet-directory'
else
	root_elmt='definition'
fi

# Does the file already have a name for the provided language?
name_xpath=$(printf '/%s/names/name[@lang="%s"]' "${root_elmt}" "${lang}")
already_exists=$(xmlstarlet select -t --value-of "count(${name_xpath})" "${file}")
if [ "${already_exists}" -eq 0 ]; then
	# we need to insert the element
	names_xpath=$(printf '/%s/names' "${root_elmt}")
	name_xpath=$(printf '/%s/names/name[not(@lang)]' "${root_elmt}")
	xmlstarlet edit --subnode "${names_xpath}" --type elem -n "name" --value "${name}" "${file}" | \
	xmlstarlet edit --insert  "${name_xpath}"  --type attr -n "lang" --value "${lang}" > "${tmp_file}"
else
	# we need to update the element
	xmlstarlet edit --update "${name_xpath}" --value "${name}" "${file}" > "${tmp_file}"
fi
xmlstarlet format --indent-spaces 4 --omit-decl "${tmp_file}" > "${file}"
sed -i 's,<informations/>,<informations></informations>,' "${file}"
