1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-22 04:17:44 +00:00

Add tetex-modesw script and several new directories.

Approved by:	linimon (mentor)
This commit is contained in:
Hiroki Sato 2004-06-18 15:06:26 +00:00
parent ad16e21811
commit 425a597bb1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=111727
3 changed files with 198 additions and 27 deletions

View File

@ -5,7 +5,7 @@
# $FreeBSD$
PORTNAME= tex-texmflocal
PORTVERSION= 1.3
PORTVERSION= 1.4
CATEGORIES= print
MASTER_SITES= # empty
DISTFILES= # empty
@ -13,47 +13,87 @@ DISTFILES= # empty
MAINTAINER= hrs@FreeBSD.org
COMMENT= Meta-port that creates a site-local $$TEXMF directory
BUILD_DEPENDS= mktexlsr:${PORTSDIR}/print/teTeX
NO_WRKSUBDIR= yes
NO_BUILD= yes
PKGINSTALL= ${WRKDIR}/pkg-install.sh
PKGDEINSTALL= ${WRKDIR}/pkg-install.sh
PLIST= ${WRKDIR}/pkg-plist
TEXMF= share/texmf
TEXMFLOCAL= share/texmf-local
TEXMFLOCAL_LSR= ${LOCALBASE}/${TEXMFLOCAL}/ls-R
TEXMFVAR= share/texmf-var
TEXMFVAR_LSR= ${LOCALBASE}/${TEXMFVAR}/ls-R
MKTEXLSR= ${LOCALBASE}/bin/mktexlsr
DEFAULT_MODE= tetex
TEXMFCNF= web2c/texmf.cnf
DVIPSKCNF= dvips/config/config.ps
XDVIKCNF= xdvi/XDvi
DVIPDFMCNF= dvipdfm/config/config
TETEX_MODESW_SUB= \
DEFAULT_MODE=${DEFAULT_MODE} \
TEXMFCNF=${TEXMFCNF} \
DVIPSKCNF=${DVIPSKCNF} \
XDVIKCNF=${XDVIKCNF} \
DVIPDFMCNF=${DVIPDFMCNF} \
PREFIX=${PREFIX} \
TEXMF=${TEXMF} \
TEXMFVAR=${TEXMFVAR} \
TEXMFLOCAL=${TEXMFLOCAL}
DIRS= bibtex/bib bibtex/bst bibtex\
dvipdfm dvips \
context/config context \
dvipdfm/config dvipdfm dvips/config dvips \
etex/plain/config etex/plain etex \
fonts/afm fonts/ofm fonts/ovp fonts/ovf \
fonts/ocp fonts/pk fonts/tfm fonts/type1 \
fonts/source/public fonts/source fonts/vf fonts \
metafont metapost \
jbibtex/bib jbibtex/bst jbibtex\
tex/generic tex/jadetex tex/latex tex/plain tex\
pdftex/latex pdftex/platex pdftex\
tex/generic/config tex/generic \
tex/jadetex tex/latex tex/plain tex\
pdftex/config pdftex/latex pdftex/platex pdftex\
ptex/plain ptex/platex ptex\
web2c
web2c xdvi
LSRMAGIC=${ECHO_CMD} "% ls-R -- filename database for kpathsea; do not change this line."
pre-install:
(${ECHO_CMD} '${TEXMFLOCAL}/ls-R'; \
${SED} ${TETEX_MODESW_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
< ${FILESDIR}/tetex-modesw.in > ${WRKDIR}/tetex-modesw
(${ECHO_CMD} "bin/tetex-modesw"; \
for dir in ${DIRS}; do \
${ECHO_CMD} "@dirrm ${TEXMFLOCAL}/$${dir}"; \
${ECHO_CMD} "@unexec ${RMDIR} %D/${TEXMFLOCAL}/$${dir} > /dev/null 2>&1 || true"; \
${ECHO_CMD} "@unexec ${RMDIR} %D/${TEXMFVAR}/$${dir} > /dev/null 2>&1 || true"; \
${ECHO_CMD} "@exec ${MKDIR} %D/${TEXMFLOCAL}/$${dir}"; \
${ECHO_CMD} "@exec ${MKDIR} %D/${TEXMFVAR}/$${dir}"; \
done; \
${ECHO_CMD} '@exec ${MKTEXLSR}'; \
${ECHO_CMD} '@unexec ${MKTEXLSR}' ) > ${PLIST}
${SED} -e 's,%%TEXMFLOCAL_LSR%%,${TEXMFLOCAL_LSR},' \
< ${FILESDIR}/pkg-install.in > ${PKGINSTALL}
${CHMOD} 0555 ${PKGINSTALL}
${ECHO_CMD} '@exec ${LSRMAGIC:S,%,%%,g} > ${TEXMFLOCAL_LSR} && ${CHMOD} 0644 ${TEXMFLOCAL_LSR}'; \
${ECHO_CMD} '@exec ${LSRMAGIC:S,%,%%,g} > ${TEXMFVAR_LSR} && ${CHMOD} 0644 ${TEXMFVAR_LSR}'; \
${ECHO_CMD} '@exec ${TOUCH} ${PREFIX}/etc/tetex-modesw.conf'; \
${ECHO_CMD} '@unexec ${RM} -f ${PREFIX}/etc/tetex-modesw.conf > /dev/null 2>&1 || true'; \
${ECHO_CMD} '@unexec ${RM} -f ${TEXMFLOCAL_LSR} > /dev/null 2>&1 || true'; \
${ECHO_CMD} '@unexec ${RM} -f ${TEXMFVAR_LSR} > /dev/null 2>&1 || true'; \
${ECHO_CMD} "@unexec ${RMDIR} %D/${TEXMFLOCAL} > /dev/null 2>&1 || true"; \
${ECHO_CMD} "@unexec ${RMDIR} %D/${TEXMFVAR} > /dev/null 2>&1 || true"; \
${ECHO_CMD} '@exec if [ -x ${MKTEXLSR} ]; then ${MKTEXLSR}; fi'; \
${ECHO_CMD} '@unexec if [ -x ${MKTEXLSR} ]; then ${MKTEXLSR}; fi'; \
) > ${PLIST}
do-install:
${INSTALL_SCRIPT} ${WRKDIR}/tetex-modesw ${PREFIX}/bin
${TOUCH} ${PREFIX}/etc/tetex-modesw.conf
${CHMOD} 644 ${PREFIX}/etc/tetex-modesw.conf
${MKDIR} ${DIRS:S,^,${PREFIX}/${TEXMFLOCAL}/,}
${MKDIR} ${DIRS:S,^,${PREFIX}/${TEXMFVAR}/,}
${LSRMAGIC} > ${TEXMFLOCAL_LSR}
${CHMOD} 0644 ${TEXMFLOCAL_LSR}
${LSRMAGIC} > ${TEXMFVAR_LSR}
${CHMOD} 0644 ${TEXMFVAR_LSR}
post-install:
@${MKTEXLSR}
@${PKGINSTALL} ${PKGNAME} POST-INSTALL
@if [ -x ${MKTEXLSR} ]; then ${MKTEXLSR}; fi
.include <bsd.port.mk>

View File

@ -1,11 +0,0 @@
# $FreeBSD$
case $2 in
POST-INSTALL|DEINSTALL)
echo "fixup %%TEXMFLOCAL_LSR%%..."
T=/tmp/tex-texmflocal.$$
cat %%TEXMFLOCAL_LSR%% | grep -v "./lsR[0-9]*.tmp": > ${T}
cp ${T} %%TEXMFLOCAL_LSR%%
rm -f ${T}
;;
esac

View File

@ -0,0 +1,142 @@
#!/bin/sh
# $FreeBSD$
if [ $# != 0 ]; then MODE=$1; shift; fi
if [ $# != 0 ]; then FILE=$1; shift; fi
if [ $# != 0 ]; then OPTIONS=$*; fi
GREP=/usr/bin/grep
SED=/usr/bin/sed
CONF=%%PREFIX%%/etc/tetex-modesw.conf
DEFAULT_MODE=tetex
PREFIX=%%PREFIX%%
TEXMF=%%TEXMF%%
TEXMFLOCAL=%%TEXMFLOCAL%%
TEXMFVAR=%%TEXMFVAR%%
if [ ! -r ${CONF} ]; then
echo "ERROR: ${CONF} not found."
else
. ${CONF}
fi
case ${FILE} in
texmf.cnf|tex)
CONFIG=%%TEXMFCNF%%
DEFAULT_MODE=tetex
;;
config.ps|dvips)
CONFIG=%%DVIPSKCNF%%
;;
XDvi|xdvi)
CONFIG=%%XDVIKCNF%%
;;
config|dvipdfm)
CONFIG=%%DVIPDFMCNF%%
;;
*)
CONFIG=${FILE}
;;
esac
FORCEINSTALL=FALSE
DESTMF=${TEXMFVAR}
set -- ${OPTIONS}
while [ $# != 0 ]; do
case $1 in
force*)
FORCEINSTALL=TRUE ;;
main)
DESTMF=${TEXMF} ;;
var)
DESTMF=${TEXMFVAR} ;;
local)
DESTMF=${TEXMFLOCAL} ;;
esac
shift;
done
usage()
{
echo "Usage: tetex-modesw modename {tex|dvips|dvipdfm|xdvi} [{forceinstall|var|main|local} ...]"
exit 1
}
install_file()
{
_MODE=$1
_SRC=$2
_DST=$3
if [ ! -f ${_SRC} ]; then
echo "ERROR: invalid mode \"${_MODE}\" is specified."
usage
fi
if [ -f ${_DST} -a "${FORCEINSTALL}" != "TRUE" ]; then
echo "WARNING: ${_DST} is not modified because it already exists."
echo " If you want to install ${_SRC} -> ${_DST},"
echo " use \"forceinstall\" option."
exit 1
fi
if [ -f ${_DST} ] && cmp -s ${_SRC} ${_DST}; then
:
else
echo "Installing: ${_SRC} -> ${_DST}"
cp -p ${_SRC} ${_DST}
fi
}
uninstall_file()
{
for _F in $1; do
if [ -f ${_F} ]; then
echo "Uninstalling: ${_F}"
rm -f ${_F}
fi
done
}
changedefault()
{
_MODE=$1
case ${_MODE} in
tetex|tetex-letter)
echo "Default mode -> ${_MODE}"
echo "DEFAULT_MODE=${_MODE}" >> ${CONF}
;;
*)
echo "ERROR: Unknown mode ${_MODE} is specified."
usage
exit 1
;;
esac
}
case ${MODE} in
default)
MODE=${DEFAULT_MODE}
install_file \
"${MODE}" \
"${PREFIX}/${TEXMF}/${CONFIG}.${MODE}" \
"${PREFIX}/${DESTMF}/${CONFIG}"
;;
uninstall)
uninstall_file ${PREFIX}/${DESTMF}/${CONFIG}
;;
changedefault)
changedefault ${CONFIG}
;;
*)
install_file \
"${MODE}" \
"${PREFIX}/${TEXMF}/${CONFIG}.${MODE}" \
"${PREFIX}/${DESTMF}/${CONFIG}"
;;
esac