void-packages/xbps-src/triggers/gconf-schemas
Juan RP ec0f955d70 Added gconf-schemas new trigger.
Two new vars can be used in templates to handle GConf schemas files,
gconf_entries and gconf_schemas.

--HG--
extra : convert_revision : 315756b79166538ef0efae5a70c7ec8d9f7f61d9
2010-04-11 12:50:35 +02:00

92 lines
2.2 KiB
Bash
Executable file

#!/bin/sh -e
#
# (Un)registers GConf schemas/entries into the schemas database directory.
#
# The following variables can be defined by a package to register .entries
# and .schemas files:
#
# gconf_entries - A list of .entries files to register. When using this
# variable, packages need to be fixed to not register
# them and to install those files to GCONF_SCHEMAS_DIR.
# gconf_schemas - A list of .schemas files to register. When using this
# variable, packages need to be fixed to not register
# them and to install those files to GCONF_SCHEMAS_DIR.
#
# Arguments: $ACTION = [run/targets]
# $TARGET = [post-install/pre-remove]
# $PKGNAME
# $VERSION
# $UPDATE = [yes/no]
#
ACTION="$1"
TARGET="$2"
PKGNAME="$3"
VERSION="$4"
UPDATE="$5"
# The gconftool-2 binary program.
GCONFTOOL2="usr/bin/gconftool-2"
# Default configuration source (database).
GCONF_CONFIG_SOURCE="xml::/etc/gconf/gconf.xml.defaults"
# Where .schemas files go.
GCONF_SCHEMAS_DIR="usr/share/gconf/schemas"
case "$ACTION" in
targets)
echo "post-install pre-remove"
;;
run)
if [ ! -x "$GCONFTOOL2" ]; then
exit 0
fi
if [ -z "$gconf_entries" -a -z "$gconf_schemas" ]; then
return 0
fi
case "$TARGET" in
post-install)
for f in ${gconf_schemas}; do
GCONF_CONFIG_SOURCE="$GCONF_CONFIG_SOURCE" \
${GCONFTOOL2} --makefile-install-rule \
${GCONF_SCHEMAS_DIR}/${f} >/dev/null
if [ $? -eq 0 ]; then
echo "Registered GConf schema: ${f}."
fi
done
for f in ${gconf_entries}; do
${GCONFTOOL2} --config-source=${GCONF_CONFIG_SOURCE} \
--direct --load ${GCONF_SCHEMAS_DIR}/${f} \
>/dev/null
if [ $? -eq 0 ]; then
echo "Registered GConf entry: ${f}."
fi
done
;;
pre-remove)
for f in ${gconf_entries}; do
${GCONFTOOL2} --config-source=${GCONF_CONFIG_SOURCE} \
--direct --unload ${GCONF_SCHEMAS_DIR}/${f} \
>/dev/null
if [ $? -eq 0 ]; then
echo "Unregistered GConf entry: ${f}."
fi
done
for f in ${gconf_schemas}; do
GCONF_CONFIG_SOURCE="${GCONF_CONFIG_SOURCE}" \
${GCONFTOOL2} --makefile-uninstall-rule \
${GCONF_SCHEMAS_DIR}/${f} >/dev/null
if [ $? -eq 0 ]; then
echo "Unregistered GConf schema: ${f}."
fi
done
;;
esac
;;
*)
exit 1
;;
esac
exit 0