* Makefile.in (install): Install cygserver-config script to bindir.
* cygserver-config: New script.
This commit is contained in:
parent
dd9f316d65
commit
72f11cac65
|
@ -1,3 +1,8 @@
|
|||
2003-11-20 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* Makefile.in (install): Install cygserver-config script to bindir.
|
||||
* cygserver-config: New script.
|
||||
|
||||
2003-11-19 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
Don't use safe_new but new throughout. Fix copyright dates
|
||||
|
|
|
@ -48,9 +48,10 @@ CYGWIN_OBJS:=$(cygwin_build)/smallprint.o $(cygwin_build)/version.o \
|
|||
|
||||
all: cygserver.exe
|
||||
|
||||
install: all cygserver.conf
|
||||
install: all cygserver.conf cygserver-config
|
||||
$(INSTALL_PROGRAM) cygserver.exe $(sbindir)/cygserver.exe
|
||||
$(INSTALL_DATA) $(srcdir)/cygserver.conf $(sysconfdir)/cygserver.conf
|
||||
$(INSTALL_PROGRAM) cygserver-config $(bindir)/cygserver-config
|
||||
$(INSTALL_DATA) $(srcdir)/cygserver.conf $(sysconfdir)/defaults/etc/cygserver.conf
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) ${patsubst %.o,%.d,$(OBJS)} cygserver.exe
|
||||
|
|
|
@ -0,0 +1,212 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# cygserver-config, Copyright 2003 Red Hat Inc.
|
||||
#
|
||||
# This file is part of the Cygwin DLL.
|
||||
|
||||
# Directory where the config files are stored
|
||||
SYSCONFDIR=/etc
|
||||
LOCALSTATEDIR=/var
|
||||
|
||||
progname=$0
|
||||
auto_answer=""
|
||||
|
||||
request()
|
||||
{
|
||||
if [ "${auto_answer}" = "yes" ]
|
||||
then
|
||||
echo "$1 (yes/no) yes"
|
||||
return 0
|
||||
elif [ "${auto_answer}" = "no" ]
|
||||
then
|
||||
echo "$1 (yes/no) no"
|
||||
return 1
|
||||
fi
|
||||
|
||||
answer=""
|
||||
while [ "X${answer}" != "Xyes" -a "X${answer}" != "Xno" ]
|
||||
do
|
||||
echo -n "$1 (yes/no) "
|
||||
read -e answer
|
||||
done
|
||||
if [ "X${answer}" = "Xyes" ]
|
||||
then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Check options
|
||||
|
||||
while :
|
||||
do
|
||||
case $# in
|
||||
0)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
|
||||
option=$1
|
||||
shift
|
||||
|
||||
case "${option}" in
|
||||
-d | --debug )
|
||||
set -x
|
||||
;;
|
||||
|
||||
-y | --yes )
|
||||
auto_answer=yes
|
||||
;;
|
||||
|
||||
-n | --no )
|
||||
auto_answer=no
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "usage: ${progname} [OPTION]..."
|
||||
echo
|
||||
echo "This script creates an Cygserver service 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
|
||||
|
||||
# Check if running on NT
|
||||
_sys="`uname`"
|
||||
_nt=`expr "${_sys}" : "CYGWIN_NT"`
|
||||
|
||||
# Check for running cygserver processes first.
|
||||
if ps -ef | grep -v grep | grep -q cygserver
|
||||
then
|
||||
echo
|
||||
echo "There is a cygserver already running. Nothing to do, apparently."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for ${SYSCONFDIR} directory
|
||||
if [ -e "${SYSCONFDIR}" -a ! -d "${SYSCONFDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "${SYSCONFDIR} is existant but not a directory."
|
||||
echo "Cannot create global configuration file."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create it if necessary
|
||||
if [ ! -e "${SYSCONFDIR}" ]
|
||||
then
|
||||
mkdir "${SYSCONFDIR}"
|
||||
if [ ! -e "${SYSCONFDIR}" ]
|
||||
then
|
||||
echo
|
||||
echo "Creating ${SYSCONFDIR} directory failed"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create /var/log if not already existing
|
||||
if [ -f ${LOCALSTATEDIR}/log ]
|
||||
then
|
||||
echo "Creating ${LOCALSTATEDIR}/log failed!"
|
||||
else
|
||||
if [ ! -d ${LOCALSTATEDIR}/log ]
|
||||
then
|
||||
mkdir -p ${LOCALSTATEDIR}/log
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if cygserver.conf exists. If yes, ask for overwriting
|
||||
if [ -f "${SYSCONFDIR}/cygserver.conf" ]
|
||||
then
|
||||
if request "Overwrite existing ${SYSCONFDIR}/cygserver.conf file?"
|
||||
then
|
||||
rm -f "${SYSCONFDIR}/cygserver.conf"
|
||||
if [ -f "${SYSCONFDIR}/cygserver.conf" ]
|
||||
then
|
||||
echo
|
||||
echo "Can't overwrite. ${SYSCONFDIR}/cygserver.conf is write protected."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Create default cygserver.conf from skeleton files in /etc/defaults/etc
|
||||
if [ ! -f "${SYSCONFDIR}/cygserver.conf" ]
|
||||
then
|
||||
echo "Generating ${SYSCONFDIR}/cygserver.conf file"
|
||||
cp "${SYSCONFDIR}/defaults/etc/cygserver.conf" "${SYSCONFDIR}/cygserver.conf"
|
||||
if [ ! -f "${SYSCONFDIR}/cygserver.conf" ]
|
||||
then
|
||||
echo
|
||||
echo "Couldn't create ${SYSCONFDIR}/cygserver.conf."
|
||||
echo "Perhaps there's no default file in ${SYSCONFDIR}/defaults/etc?"
|
||||
echo "Reinstalling Cygwin might help."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
chmod 664 "${SYSCONFDIR}/cygserver.conf"
|
||||
chown system.544 "${SYSCONFDIR}/cygserver.conf"
|
||||
fi
|
||||
|
||||
# On NT ask if cygserver should be installed as service
|
||||
if [ ${_nt} -gt 0 ]
|
||||
then
|
||||
# But only if it is not already installed
|
||||
if ! cygrunsrv -Q cygserver > /dev/null 2>&1
|
||||
then
|
||||
echo
|
||||
echo
|
||||
echo "Warning: The following function requires administrator privileges!"
|
||||
echo
|
||||
echo "Do you want to install cygserver as service?"
|
||||
if request "(Say \"no\" if it's already installed as service)"
|
||||
then
|
||||
if ! cygrunsrv -I cygserver -d "CYGWIN cygserver" -p /usr/sbin/cygserver
|
||||
then
|
||||
echo
|
||||
echo "Installation of cygserver as service failed. Please check the"
|
||||
echo "error messages you got. They might give a clue why it failed."
|
||||
echo
|
||||
echo "A good start is either you don't have administrator privileges"
|
||||
echo "or a missing cygrunsrv binary. Please check for both."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
echo "The service has been installed under LocalSystem account."
|
||||
echo "To start it, call \`net start cygserver' or \`cygrunsrv -S cygserver'."
|
||||
fi
|
||||
touch "${LOCALSTATEDIR}/log/cygserver.log"
|
||||
chown system.544 "${LOCALSTATEDIR}/log/cygserver.log"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Further configuration options are available by editing the configuration"
|
||||
echo "file ${SYSCONFDIR}/cygserver.conf. Please read the inline information in that"
|
||||
echo "file carefully. The best option for the start is to just leave it alone."
|
||||
echo
|
||||
echo "Please keep in mind, that a client application which wants to use"
|
||||
echo "the services provided by cygserver *must* have the environment variable"
|
||||
echo "CYGWIN set so that it contains the word \"server\". So, if you don't"
|
||||
echo "need any other special CYGWIN setting, just set it to \"server\"".
|
||||
echo "You can do this in the Windows system environment or in the local"
|
||||
echo "shell profiles like this:"
|
||||
echo
|
||||
echo " export CYGWIN=server in sh/bash/ksh/zsh or"
|
||||
echo " setenv CYGWIN server in tcsh."
|
||||
echo
|
||||
echo "Basic Cygserver configuration finished. Have fun!"
|
||||
echo
|
Loading…
Reference in New Issue