pkgsrc/mk/pkginstall/ocaml-findlib-register
jaapb 8bf82f0dd4 Updated pkginstall framework to correct bug in findlib registration.
Discussed on packages@ and okayed by jperkin.
2016-06-25 13:52:28 +00:00

69 lines
1.6 KiB
Text

# $NetBSD: ocaml-findlib-register,v 1.3 2016/06/25 13:52:28 jaapb Exp $
#
# Generate an +OCAML_FINDLIB_REGISTER script that handles registration for
# findlib after a binary installation
#
case "${STAGE},$1" in
UNPACK,|UNPACK,+OCAML_FINDLIB_REGISTER)
${CAT} > ./+OCAML_FINDLIB_REGISTER << 'EOF'
#!@SH@
#
# +OCAML_FINDLIB_REGISTER - ocaml-findlib registration script
#
# Usage: ./+OCAML_FINDLIB_REGISTER ADD|REMOVE [findlib_pkg_dir]
#
# This script supports two actions, ADD and REMOVE, that will
# add or remove directories from the ocaml ld.conf file (standard location
# is in LOCALBASE/lib/ocaml/ld.conf)
#
ECHO="@ECHO@"
GREP="@GREP@"
MV="@MV@"
OCAML_FINDLIB_DIRS="@OCAML_FINDLIB_DIRS@"
OCAML_FINDLIB_REGISTER="@OCAML_FINDLIB_REGISTER@"
OCAML_SITELIBDIR="@OCAML_SITELIBDIR@"
PWD_CMD="@PWD_CMD@"
RM="@RM@"
TOUCH="@TOUCH@"
SELF=$0
ACTION=$1
LDCONF="@PREFIX@/lib/ocaml/ld.conf"
CURDIR=`${PWD_CMD}`
PKG_METADATA_DIR="${2-${CURDIR}}"
: ${PKGNAME=${PKG_METADATA_DIR##*/}}
: ${PKG_PREFIX=@PREFIX@}
case "${OCAML_FINDLIB_REGISTER_VERBOSE:-@OCAML_FINDLIB_REGISTER_VERBOSE@}" in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
echo="${ECHO}"
;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
echo=":"
;;
esac
${TOUCH} "${LDCONF}.tmp"
for i in ${OCAML_FINDLIB_DIRS}
do
${GREP} -F -v -- "${OCAML_SITELIBDIR}/$i" < "${LDCONF}" > "${LDCONF}.tmp"
case $ACTION in
ADD)
$echo "${PKGNAME}: adding $i to ${LDCONF}"
${ECHO} "@PREFIX@/${OCAML_SITELIBDIR}/$i" >> "${LDCONF}.tmp"
;;
REMOVE)
$echo "${PKGNAME}: removing $i from ${LDCONF}"
;;
esac
${MV} -f "${LDCONF}.tmp" "${LDCONF}"
done
EOF
${CHMOD} +x ./+OCAML_FINDLIB_REGISTER
;;
esac