#!/bin/sh # # messagebus-config, Copyright 2009 Yaakov Selkowitz # # This file is part of the Cygwin port of dbus. # ====================================================================== # Initialization # ====================================================================== PROGNAME=$(basename $0) _tdir=$(dirname $0) PROGDIR=$(cd $_tdir && pwd) CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh # Subdirectory where the new package is being installed PREFIX=@prefix@ # Directory where the config files are stored SYSCONFDIR=@sysconfdir@/dbus-1 DEVDIR=/dev LOGDIR=/var/log RUNDIR=$(dirname @DBUS_SYSTEM_PID_FILE@) SOCKDIR=$(dirname @DBUS_SYSTEM_SOCKET@) source ${CSIH_SCRIPT} # ====================================================================== # Routine: install_service # Install messagebus as a service # ====================================================================== install_service() { if csih_is_nt then # Check if messagebus is installed and remove on user request. if cygrunsrv -Q messagebus > /dev/null 2>&1 then csih_warning "The messagebus service is already installed." echo if csih_request "Do you want to reinstall it with different args?" then cygrunsrv -E messagebus cygrunsrv -R messagebus fi fi # Install messagebus service if it is not already installed if ! cygrunsrv -Q messagebus > /dev/null 2>&1 then echo csih_warning "The following function requires administrator privileges!" if csih_request "Do you want to install messagebus as service?" then if cygrunsrv -I messagebus -d "CYGWIN D-Bus system service" -p @EXPANDED_BINDIR@/dbus-daemon -a "--nofork --system" then echo csih_inform "The messagebus service has been installed under the LocalSystem" csih_inform "account (also known as SYSTEM). To start the service now, call" csih_inform "\`net start messagebus' or \`cygrunsrv -S messagebus'. Otherwise, it" csih_inform "will start automatically after the next reboot." echo csih_inform "Check ${SYSCONFDIR}/system.conf first, if it suits your needs." fi fi # user allowed us to install messagebus fi # messagebus already installed fi # csih_is_nt } # --- End of install_service --- # # ====================================================================== # Main Entry Point # ====================================================================== # Check how the script has been started. If # (1) it has been started by giving the full path and # that path is /etc/postinstall, OR # (2) Otherwise, if the environment variable # CONFIG_AUTO_ANSWER_NO is set # then set auto_answer to "no". This allows automatic # creation of the config files in /etc w/o overwriting # them if they already exist. In both cases, color # escape sequences are suppressed, so as to prevent # cluttering setup's logfiles. if [ "$PROGDIR" = "/etc/postinstall" ] then csih_auto_answer="no" csih_disable_color fi if [ -n "${CONFIG_AUTO_ANSWER_NO}" ] then csih_auto_answer="no" csih_disable_color fi # ====================================================================== # Parse options # ====================================================================== while : do case $# in 0) break ;; esac option=$1 shift case "$option" in -d | --debug ) set -x csih_trace_on ;; -y | --yes ) csih_auto_answer=yes ;; -n | --no ) csih_auto_answer=no ;; *) echo "usage: ${PROGNAME} [OPTION]..." echo echo "This script creates a basic messagebus configuration." echo echo "Options:" echo " --debug -d Enable shell's debug output." echo " --yes -y Answer all questions with \"yes\" automatically." echo " --no -n Answer all questions with \"no\" automatically." echo exit 1 ;; esac done # ====================================================================== # Action! # ====================================================================== # Check for ${SYSCONFDIR} directory csih_make_dir "${SYSCONFDIR}" "Cannot create global configuration files." chmod 775 "${SYSCONFDIR}" setfacl -m u:system:rwx "${SYSCONFDIR}" # Check for ${DEVDIR} directory csih_make_dir "${DEVDIR}" "Syslogging using messagebus will not work." chmod 775 "${DEVDIR}" setfacl -m u:system:rwx "${DEVDIR}" # Check for ${LOGDIR} directory csih_make_dir "${LOGDIR}" "Syslogging using messagebus will not work." chmod 775 "${LOGDIR}" setfacl -m u:system:rwx "${LOGDIR}" # Check for ${RUNDIR} directory csih_make_dir "${RUNDIR}" "PID files of running processes will not be created." chmod 775 "${RUNDIR}" setfacl -m u:system:rwx "${RUNDIR}" # Check for ${SOCKDIR} directory csih_make_dir "${SOCKDIR}" "SOCKET files of running processes will not be created." chmod 775 "${SOCKDIR}" setfacl -m u:system:rwx "${SOCKDIR}" # maybe: csih_auto_answer=no will skip, # interactive user will get a chance to override install_service echo echo "Configuration finished. Have fun!"