| #!/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-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>. |
| ############################################################################### |
| |
| . "${0%/*}/prologue.sh" |
| |
| executeCommand() { |
| "${@}" |
| } |
| |
| updateFiles() { |
| fromRoot="${1}" |
| fromDirectory="${2}" |
| toDirectory="${3}" |
| shift 3 |
| |
| executeCommand mkdir -p -- "${outputRoot}/${toDirectory}" |
| set -- `cd "${fromRoot}/${fromDirectory}" && echo ${*}` |
| |
| for fromFile |
| do |
| fromPath="${fromRoot}/${fromDirectory}/${fromFile}" |
| [ -e "${fromPath}" ] && executeCommand cp -a -- "${fromPath}" "${outputRoot}/${toDirectory}/" |
| done |
| } |
| |
| outputRoot="" |
| sourceRoot="" |
| buildRoot="" |
| |
| while getopts ":o:s:b:" option |
| do |
| case "${option}" |
| in |
| o) outputRoot="${OPTARG}";; |
| s) sourceRoot="${OPTARG}";; |
| b) buildRoot="${OPTARG}";; |
| |
| :) syntaxError "missing value: -${OPTARG}";; |
| \?) syntaxError "unknown option: -${OPTARG}";; |
| *) syntaxError "unimplemented option: -${option}";; |
| esac |
| done |
| |
| shift `expr "${OPTIND}" - 1` |
| [ "${#}" -eq 0 ] || syntaxError "too many parameters" |
| |
| [ -n "${outputRoot}" ] || outputRoot="doc" |
| verifyOutputDirectory "${outputRoot}" |
| |
| [ -n "${sourceRoot}" ] || sourceRoot=`dirname "${0}"` |
| verifyInputDirectory "${sourceRoot}" |
| sourceRoot=`resolveDirectory "${sourceRoot}"` |
| |
| if [ -n "${buildRoot}" ] |
| then |
| verifyInputDirectory "${buildRoot}" |
| buildRoot=`resolveDirectory "${buildRoot}"` |
| else |
| buildRoot="${sourceRoot}" |
| fi |
| |
| updateFiles "${sourceRoot}" "." "." "README" "LICENSE-*" |
| |
| sourceDocuments="${sourceRoot}/${documentsSubdirectory}" |
| buildDocuments="${buildRoot}/${documentsSubdirectory}" |
| |
| for document in `cd "${sourceDocuments}" && echo README.*` |
| do |
| make -s -C "${buildDocuments}" "${document#README.}.html" |
| done |
| |
| updateFiles "${sourceRoot}" "${documentsSubdirectory}" "." "BUGS" "ChangeLog" "CONTRIBUTORS" "HISTORY" "TODO" "*.csv" |
| updateFiles "${buildRoot}" "${documentsSubdirectory}" "." "brltty.conf" "*.html" |
| |
| for manual in `cd "${sourceDocuments}" && echo Manual-*/*` |
| do |
| for documentExtension in doc htm html pdf sgml txt |
| do |
| updateFiles "${sourceRoot}" "${documentsSubdirectory}/${manual}" "${manual}" "*.${documentExtension}" |
| done |
| done |
| |
| for manual in BrlAPIref |
| do |
| updateFiles "${buildRoot}" "${documentsSubdirectory}/${manual}/html" "${manual}" "*.html" |
| done |
| |
| executeCommand "${sourceRoot}/mkdocktb" -o "${outputRoot}/KeyTables" -s "${sourceRoot}" -b "${buildRoot}" |
| |
| exit 0 |