diff options
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-src/install-gtex.sh')
-rwxr-xr-x | Build/source/texk/gregorio/gregorio-src/install-gtex.sh | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/Build/source/texk/gregorio/gregorio-src/install-gtex.sh b/Build/source/texk/gregorio/gregorio-src/install-gtex.sh new file mode 100755 index 00000000000..d0183efae3e --- /dev/null +++ b/Build/source/texk/gregorio/gregorio-src/install-gtex.sh @@ -0,0 +1,155 @@ +#!/bin/bash + +# Copyright (C) 2015 The Gregorio Project (see CONTRIBUTORS.md) +# +# This file is part of Gregorio. +# +# Gregorio is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Gregorio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Gregorio. If not, see <http://www.gnu.org/licenses/>. + +# This script installs the GregorioTeX portion of Gregorio. +# +# There are four ways to use this script: +# +# install-gtex.sh var:{tex-variable} +# +# Installs GregorioTeX into the directory named by the given {tex-variable}. +# If the DESTDIR environment variable is set, it will be prepended. +# +# Example: install-gtex.sh var:TEXMFLOCAL +# - Installs GregorioTeX into the system-wide TEXMF directory +# +# Example: install-gtex.sh var:TEXMFHOME +# - Installs GregorioTeX into the user's personal TEXMF directory +# +# install-gtex.sh system|user +# +# Installs GregorioTeX into one of two common install locations. If the +# DESTDIR environment variable is set, it will be prepended. +# +# Example: install-gtex.sh system +# - Installs GregorioTeX into the system-wide TEXMF directory; an alias for +# install-gtex.sh var:TEXMFLOCAL +# +# Example: install-gtex.sh user +# - Installs GregorioTeX into the user's personal TEXMF directory; an alias +# for install-gtex.sh var:TEXMFHOME +# +# install-gtex.sh dir:{directory} +# +# Installs GregorioTeX into the {directory} directory. +# +# Example: install-gtex.sh dir:/tmp/gtex +# - Installs GregorioTeX into /tmp/gtex +# +# install-gtex.sh tds +# +# Creates a TDS-ready archive named gregoriotex.tds.zip +# + +TEXFILES=(tex/*.tex tex/gregorio*.sty tex/*.lua tex/*.dat) +TTFFILES=(gregorio.ttf greciliae.ttf parmesan.ttf gregorio-op.ttf + greciliae-op.ttf parmesan-op.ttf greextra.ttf gregall.ttf + gresgmodern.ttf) +DOCFILES=(fonts/README.md) +FONTSRCFILES=(gregorio-base.sfd parmesan-base.sfd greciliae-base.sfd + greextra.sfd squarize.py convertsfdtottf.py gregall.sfd + gresgmodern.sfd) + +NAME=${NAME:-gregoriotex} +FORMAT=${FORMAT:-luatex} +TEXHASH=${TEXHASH:-texhash} +KPSEWHICH=${KPSEWHICH:-kpsewhich} +CP=${CP:-cp} + +TTFFILES=("${TTFFILES[@]/#/fonts/}") +FONTSRCFILES=("${FONTSRCFILES[@]/#/fonts/}") + +arg="$1" +case "$arg" in + system) + arg='var:TEXMFLOCAL' + ;; + user) + arg='var:TEXMFHOME' + ;; +esac + +case "$arg" in + "") + ;; + tds) + TDS_ZIP="${NAME}.tds.zip" + TEXMFROOT=./tmp-texmf + ;; + var:*) + TEXMFROOT=`${KPSEWHICH} -expand-path "\$${arg#var:}"` + if [ "$TEXMFROOT" = "" ] + then + TEXMFROOT=`${KPSEWHICH} -var-value "${arg#var:}"` + fi + if [ "$TEXMFROOT" = "" ] + then + echo "Invalid TeX variable: '${arg#var:}'" + echo + else + sep=`${KPSEWHICH} -expand-path "{.,.}"` + sep="${sep#.}" + sep="${sep%.}" + TEXMFROOT="${DESTDIR}${TEXMFROOT/${sep}*/}" + fi + ;; + dir:*) + TEXMFROOT="${arg#dir:}" + ;; + *) + echo "Invalid argument: '$arg'" + echo + ;; +esac + +if [ "$TEXMFROOT" = "" ] +then + echo "Usage: $0 var:{tex-variable}" + echo " $0 dir:{directory}" + echo " $0 system|user|tds" + exit 1 +fi + +function die { + echo 'Failed.' + exit 1 +} + +function install_to { + dir="$1" + shift + mkdir -p "$dir" || die + $CP "$@" "$dir" || die +} + +echo "Installing in '${TEXMFROOT}'." +install_to "${TEXMFROOT}/tex/${FORMAT}/${NAME}" "${TEXFILES[@]}" +install_to "${TEXMFROOT}/fonts/truetype/public/${NAME}" "${TTFFILES[@]}" +install_to "${TEXMFROOT}/doc/${FORMAT}/${NAME}" "${DOCFILES[@]}" +install_to "${TEXMFROOT}/fonts/source/${NAME}" "${FONTSRCFILES[@]}" + +if [ "$arg" = 'tds' ] +then + echo "Making TDS-ready archive ${TDS_ZIP}." + rm -f ${TDS_ZIP} + (cd ${TEXMFROOT} && zip -9 ../${TDS_ZIP} -q -r .) || die + rm -r ${TEXMFROOT} || die +else + ${TEXHASH} || die +fi |