#!/bin/sh
###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

. "`dirname "${0}"`/brltty-prologue.sh"
addProgramOption p string.name packageName "specify the package name" "the name of the top-level directory of the source tree"
addProgramOption n string.version packageVersion "specify the package version" "no version"
addProgramOption o string.file outputFile "specify the output file" "<package-name>.pot in the current directory"
addProgramOption b string.email bugsAddress "specify the email address for bug reports" "no address"
addProgramOption c string.name copyrightHolder "specify the name of the copyright holder" "no copyright holder"
addProgramParameter source sourceRoot "top-level directory of source tree"
optionalProgramParameters
addProgramParameter build buildRoot "top-level directory of build tree" "the source tree"
parseProgramArguments "${@}"

[ -n "${sourceRoot}" ] || sourceRoot="."
sourceRoot="$(resolveDirectory "${sourceRoot}")" || semanticError

if [ -n "${buildRoot}" ]
then
   buildRoot="$(resolveDirectory "${buildRoot}")" || semanticError
else
   buildRoot="${sourceRoot}"
fi
[ "${buildRoot}" != "${sourceRoot}" ] || buildRoot=""

[ -n "${packageName}" ] || packageName=`basename "${sourceRoot}"`
[ -n "${outputFile}" ] || outputFile="${packageName}.pot"
[ "${outputFile#/}" != "${outputFile}" ] || outputFile="${initialDirectory}/${outputFile}"

xgettext --output - --force-po --no-wrap --sort-output --from-code utf-8 \
   ${packageName:+--package-name "${packageName}"} \
   ${packageVersion:+--package-version "${packageVersion}"} \
   ${bugsAddress:+--msgid-bugs-address "${bugsAddress}"} \
   ${copyrightHolder:+--copyright-holder "${copyrightHolder}"} \
   --keyword=strtext:1 --flag=logMessage:2:c-format \
   --add-comments \
   -- `find -H ${sourceRoot} ${buildRoot} -name '*.c' -o -name '*.h' | sort` |
sed >"${outputFile}" -e "
  s/PACKAGE/${packageName}/

  /^#: /{
    s% ${sourceRoot}/*% %g
    s% ${buildRoot}/*% %g
  }
"
exit "${?}"
