#!/bin/bash
#H File cpcleaned2bin.sh cpcleand2bin in annex.lib
#H Bindir Resourcesdir Srcdir Verbose variables are defined in the calling program
VERSION=211020
function cpcleaned2bin ()
{
if [ "$1" = "--v" ]; then echo "cpcleaned2bin version : $VERSION";return 0;fi
mkdir -p ./tmp
if test -e $Srcdir/$1; then echo; else echo "$Srcdir/$1 not found by function cpcleaned2bin."; return -1;fi
awk '{
if ($1=="#D" || $1=="#M" || $1=="#O" || $1=="#P" || $1=="#T") {;} # do not replace with an empty line
else {print $0}
}' $Srcdir/$1 > ./tmp/$1.cleaned-1
#T cat $Srcdir/$1 | grep -v "#O\|#M\|#P\|#T" > ./tmp/$1.cleaned-1
cat ./tmp/$1.cleaned-1 | sed "s/eval_gettext /echo \$/g" | sed "s/; echo//g" > ./tmp/$1.cleaned-2
cat ./tmp/$1.cleaned-2 | sed "s/\"\$(gettext '/\$\"/g" | sed "s/' )//g" | sed "s/')//g" > ./tmp/$1.cleaned-3
echo $1 | sed "s/.sh//g" | sed "s/.bash//g" > ./tmp/first.txt
read First < ./tmp/first.txt
#T echo "First = $First"
cat ./tmp/$1.cleaned-3 > $Bindir/$First
if echo $Bindir/$First | grep ".inc"; then chmod 644 $Bindir/$First; else chmod 755 $Bindir/$First; fi
if cat $Bindir/$First | grep -e '$\"'
then
xgettext -L shell -o $Resourcesdir/lang/po/$First.pot --from-code=UTF-8 $Bindir/$First
if test -z $Resourcesdir/lang/po/fr/$First.po
then
cp $Resourcesdir/lang/po/$First.pot $Resourcesdir/lang/po/fr/$First.po
else
msgmerge --update $Resourcesdir/lang/po/fr/$First.po $Resourcesdir/lang/po/$First.pot
fi
msgfmt $Resourcesdir/lang/po/fr/$First.po -o $Resourcesdir/lang/po/fr/$First.mo
echo -e "\033[1;33m### Only if you are edit and update $First.po with Poedit: ###\033[0m"
echo "copy $Resourcesdir/lang/po/fr/$First.mo to /usr/share/locale/fr/LC_MESSAGES/$First.mo"
if test -z $Resourcesdir/lang/po/es/$First.po
then
cp $Resourcesdir/lang/po/$First.pot $Resourcesdir/lang/po/es/$First.po
else
msgmerge --update $Resourcesdir/lang/po/es/$First.po $Resourcesdir/lang/po/$First.pot
fi
msgfmt $Resourcesdir/lang/po/es/$First.po -o $Resourcesdir/lang/po/es/$First.mo
echo -e "\033[1;33m### Only if you are edit and update $First.po with Poedit: ###\033[0m"
echo "copy $Resourcesdir/lang/po/es/$First.mo to /usr/share/locale/es/LC_MESSAGES/$First.mo"
fi
rm -r ./tmp
if [ "$Verbose" = "true" ];then echo "$Bindir/$First is updated:"; ls -l $Bindir/$First; fi
}
#D cpcleaned2bin function documentation
#D ------------------------------------
#D cpcleaned2bin function is used to product pseudo binary executable file
#D without extention .sh and without tags #D #M #O #P #T The file is coped
#D to bin directory.
#D If exist "gettext" in first parameter the gettext is replaced by $" to
#D product pot file and if potfile is created then copy under .po file in
#D fr and es lang directories.
#D If .mo file pre-exist then it is updated.
#D NOTE: Bindir Resourcesdir Srcdir Verbose variables must be defined in the
#D calling program