1#!/bin/sh 2# 3# messagebus-config, Copyright 2009 Yaakov Selkowitz 4# 5# This file is part of the Cygwin port of dbus. 6 7# ====================================================================== 8# Initialization 9# ====================================================================== 10PROGNAME=$(basename $0) 11_tdir=$(dirname $0) 12PROGDIR=$(cd $_tdir && pwd) 13 14CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh 15 16# Subdirectory where the new package is being installed 17PREFIX=@prefix@ 18 19# Directory where the config files are stored 20SYSCONFDIR=@sysconfdir@/dbus-1 21DEVDIR=/dev 22LOGDIR=/var/log 23RUNDIR=$(dirname @DBUS_SYSTEM_PID_FILE@) 24SOCKDIR=$(dirname @DBUS_SYSTEM_SOCKET@) 25 26source ${CSIH_SCRIPT} 27 28# ====================================================================== 29# Routine: install_service 30# Install messagebus as a service 31# ====================================================================== 32install_service() { 33 34 if csih_is_nt 35 then 36 37 # Check if messagebus is installed and remove on user request. 38 if cygrunsrv -Q messagebus > /dev/null 2>&1 39 then 40 csih_warning "The messagebus service is already installed." 41 echo 42 if csih_request "Do you want to reinstall it with different args?" 43 then 44 cygrunsrv -E messagebus 45 cygrunsrv -R messagebus 46 fi 47 fi 48 49 # Install messagebus service if it is not already installed 50 if ! cygrunsrv -Q messagebus > /dev/null 2>&1 51 then 52 echo 53 csih_warning "The following function requires administrator privileges!" 54 if csih_request "Do you want to install messagebus as service?" 55 then 56 if cygrunsrv -I messagebus -d "CYGWIN D-Bus system service" -p @EXPANDED_BINDIR@/dbus-daemon -a "--nofork --system" 57 then 58 echo 59 csih_inform "The messagebus service has been installed under the LocalSystem" 60 csih_inform "account (also known as SYSTEM). To start the service now, call" 61 csih_inform "\`net start messagebus' or \`cygrunsrv -S messagebus'. Otherwise, it" 62 csih_inform "will start automatically after the next reboot." 63 echo 64 csih_inform "Check ${SYSCONFDIR}/system.conf first, if it suits your needs." 65 fi 66 fi # user allowed us to install messagebus 67 fi # messagebus already installed 68 fi # csih_is_nt 69} # --- End of install_service --- # 70 71 72# ====================================================================== 73# Main Entry Point 74# ====================================================================== 75 76 77# Check how the script has been started. If 78# (1) it has been started by giving the full path and 79# that path is /etc/postinstall, OR 80# (2) Otherwise, if the environment variable 81# CONFIG_AUTO_ANSWER_NO is set 82# then set auto_answer to "no". This allows automatic 83# creation of the config files in /etc w/o overwriting 84# them if they already exist. In both cases, color 85# escape sequences are suppressed, so as to prevent 86# cluttering setup's logfiles. 87if [ "$PROGDIR" = "/etc/postinstall" ] 88then 89 csih_auto_answer="no" 90 csih_disable_color 91fi 92if [ -n "${CONFIG_AUTO_ANSWER_NO}" ] 93then 94 csih_auto_answer="no" 95 csih_disable_color 96fi 97 98 99# ====================================================================== 100# Parse options 101# ====================================================================== 102while : 103do 104 case $# in 105 0) 106 break 107 ;; 108 esac 109 110 option=$1 111 shift 112 113 case "$option" in 114 -d | --debug ) 115 set -x 116 csih_trace_on 117 ;; 118 119 -y | --yes ) 120 csih_auto_answer=yes 121 ;; 122 123 -n | --no ) 124 csih_auto_answer=no 125 ;; 126 127 *) 128 echo "usage: ${PROGNAME} [OPTION]..." 129 echo 130 echo "This script creates a basic messagebus configuration." 131 echo 132 echo "Options:" 133 echo " --debug -d Enable shell's debug output." 134 echo " --yes -y Answer all questions with \"yes\" automatically." 135 echo " --no -n Answer all questions with \"no\" automatically." 136 echo 137 exit 1 138 ;; 139 140 esac 141done 142 143# ====================================================================== 144# Action! 145# ====================================================================== 146 147# Check for ${SYSCONFDIR} directory 148csih_make_dir "${SYSCONFDIR}" "Cannot create global configuration files." 149chmod 775 "${SYSCONFDIR}" 150setfacl -m u:system:rwx "${SYSCONFDIR}" 151 152# Check for ${DEVDIR} directory 153csih_make_dir "${DEVDIR}" "Syslogging using messagebus will not work." 154chmod 775 "${DEVDIR}" 155setfacl -m u:system:rwx "${DEVDIR}" 156 157# Check for ${LOGDIR} directory 158csih_make_dir "${LOGDIR}" "Syslogging using messagebus will not work." 159chmod 775 "${LOGDIR}" 160setfacl -m u:system:rwx "${LOGDIR}" 161 162# Check for ${RUNDIR} directory 163csih_make_dir "${RUNDIR}" "PID files of running processes will not be created." 164chmod 775 "${RUNDIR}" 165setfacl -m u:system:rwx "${RUNDIR}" 166 167# Check for ${SOCKDIR} directory 168csih_make_dir "${SOCKDIR}" "SOCKET files of running processes will not be created." 169chmod 775 "${SOCKDIR}" 170setfacl -m u:system:rwx "${SOCKDIR}" 171 172# maybe: csih_auto_answer=no will skip, 173# interactive user will get a chance to override 174install_service 175 176 177echo 178echo "Configuration finished. Have fun!" 179