#!/bin/bash
###############################################################################
# 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-2025 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}"`/../prologue.sh"
parseProgramArguments "${@}"

setSourceRoot
set -e

documentsDirectory="${sourceRoot}/${documentsSubdirectory}"
oldOutputFile="README.CommandReference"
newOutputFile="${oldOutputFile}.new"

cd "${sourceRoot}/${programsSubdirectory}"
make --silent brltty-cmdref
./brltty-cmdref >"${documentsDirectory}/${newOutputFile}"
cd "${documentsDirectory}"

if [ -e "${oldOutputFile}" ]
then
   [ -f "${oldOutputFile}" ] || semanticError "not a file: ${oldOutputFile}"
   [ -r "${oldOutputFile}" ] || semanticError "file not readable: ${oldOutputFile}"

   cmp --quiet "${oldOutputFile}" "${newOutputFile}" && {
      logTask "file not updated: ${oldOutputFile}"
      rm "${newOutputFile}"
      exit 0
   }

   [ -w "${oldOutputFile}" ] || semanticError "file not writable: ${oldOutputFile}"
   fileVerb="updating"
else
   fileVerb="adding"
fi

logNotice "${fileVerb} file: ${oldOutputFile}"
mv "${newOutputFile}" "${oldOutputFile}"
exit 0
