#!/bin/bash

#l10nscripts=`dirname $0`
ASMETAINFOITS="as-metainfo.its"

podir="../metainfo"
metainfo_file="../../app/org.kde.latte-dock.appdata.xml.cmake"

# first, strip translation from project metadata file
tmpxmlfile=$(mktemp)
xmlstarlet ed -d "//*[@xml:lang]" $metainfo_file > $tmpxmlfile

# get rid of the .xml extension and dirname
metainfo_file_basename=$(basename $metainfo_file)
dataname="${metainfo_file_basename%.xml*}"

# create pot file foo.[appdata|metadata].xml -> foo.[appdata|metadata].pot
itstool -i $ASMETAINFOITS -o $podir/$dataname.pot $tmpxmlfile
esc_tmpxmlfile=$(echo $tmpxmlfile|sed -e 's/[]\/()$*.^|[]/\\&/g')
sed -i "/^#:/s/$esc_tmpxmlfile/$metainfo_file_basename/" $podir/$dataname.pot

tmpmofiles=""
tmpdir=$(mktemp -d)

# find po files
catalogs=$(find "${podir}" -name '*.po')
for pofile in $catalogs; do
  # get language-id 
  lang=$(echo $(basename $pofile)|cut -d/ -f2)

  # generate mo files (need to be named after their language)
  mofile="$tmpdir/$lang.mo"
  msgfmt $pofile -o $mofile

  tmpmofiles="$tmpmofiles $mofile"
done

if [ -n "$tmpmofiles" ]; then
  # recreate file, using the untranslated temporary data and the translation
  itstool -i $ASMETAINFOITS -j $tmpxmlfile -o $metainfo_file $tmpmofiles
  echo -e "$metainfo_file_basename file for \e[0;32mappstream\e[0m was updated..."
fi

# cleanup
rm -rf $tmpdir
rm $tmpxmlfile