blob: 39459dcb7c0872c735e92fcb23cdff1eacf24bfe [file] [log] [blame]
Emeric Vigier2f625822012-08-06 11:09:52 -04001#!/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!"