aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-11-28 13:35:13 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-11-28 13:35:13 +0200
commit0a2857fb3ffd9afe6f245d44672fbdf31aed6de0 (patch)
tree2d2e67158d96d9b3ac5ba61847019c6c4e3b1c7c
parent36a53f1875a097fa16bceaf674dc627d916651df (diff)
downloadpies-0a2857fb3ffd9afe6f245d44672fbdf31aed6de0.tar.gz
pies-0a2857fb3ffd9afe6f245d44672fbdf31aed6de0.tar.bz2
Optionally provide an inetd wrapper.
* configure.ac: New option --enable-inetd * src/inetd.in: New file. * src/.gitignore: Add inetd.sh. * src/Makefile.am (inetd.sh): New goal. (install-exec-hook): New rule.
-rw-r--r--configure.ac8
-rw-r--r--src/.gitignore1
-rw-r--r--src/Makefile.am18
-rw-r--r--src/inetd.in90
4 files changed, 117 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index e9119dc..15c2835 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,6 +67,14 @@ AM_ICONV
AM_GNU_GETTEXT([external], [need-formatstring-macros])
AM_GNU_GETTEXT_VERSION([0.17])
+AC_ARG_ENABLE([inetd],
+ AC_HELP_STRING([--enable-inetd],
+ [build and install a replacement for SBINDIR/inetd]),
+ [case $enableval in
+ yes) AC_SUBST([INETD_SH], [inetd.sh]);;
+ no) ;;
+ esac])
+
# Doc hints.
# Select a rendition level:
# DISTRIB for stable releases (at most one dot in the version number)
diff --git a/src/.gitignore b/src/.gitignore
index 8a4684a..fe9c6fe 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,3 +1,4 @@
+inetd.sh
meta1gram.c
meta1gram.h
meta1gram.output
diff --git a/src/Makefile.am b/src/Makefile.am
index bbe5db7..98815b0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -64,3 +64,21 @@ AM_CPPFLAGS=\
AM_YFLAGS=-dvt -pmeta1
AM_LFLAGS=-dvp -Pmeta1 -olex.yy.c
+
+SUFFIXES = .in .sh
+EXTRA_SCRIPTS = inetd.in
+sbin_SCRIPTS = @INETD_SH@
+inetd.sh: inetd.in
+
+.in.sh:
+ $(AM_V_GEN)sed 's|_SBINDIR_|$(sbindir)|' $< > $@
+
+install-exec-hook:
+ if test -n "@INETD_SH@" && \
+ test -f $(DESTDIR)$(sbindir)/@INETD_SH@; then \
+ test -f $(DESTDIR)$(sbindir)/inetd$(EXEEXT) && \
+ cd $(DESTDIR)$(sbindir) && \
+ mv -f inetd$(EXEEXT) inetd$(EXEEXT)~; \
+ cd $(DESTDIR)$(sbindir) && \
+ mv @INETD_SH@ inetd$(EXEEXT); \
+ fi
diff --git a/src/inetd.in b/src/inetd.in
new file mode 100644
index 0000000..eefe0f6
--- /dev/null
+++ b/src/inetd.in
@@ -0,0 +1,90 @@
+#! /bin/sh
+# This file is part of GNU Pies.
+# Copyright (C) 2008, 2009 Sergey Poznyakoff
+#
+# GNU Pies is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Pies is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Pies. If not, see <http://www.gnu.org/licenses/>. */
+
+PATH=_SBINDIR_:$PATH
+
+cmdline=
+debug=0
+
+help()
+{
+ echo "Usage: $0 [OPTION] [CONFIG [CONFIG...]] [-- PIES_OPTION]"
+ echo ""
+ echo "OPTIONS are:"
+ echo " -d increase debug level"
+ echo " -R rate set maximum rate"
+ echo " -t, --lint parse configuration file and exit"
+ echo " -s, --status display info about the running instance"
+ echo " -S, --stop stop the running instance"
+ echo ""
+ echo " -?, --help give this help list"
+ echo " --usage give a short usage message"
+ echo " -V, --version print program version"
+ echo ""
+ echo "Report bugs to <bug-pies@gnu.org.ua>."
+}
+
+while test $# -ne 0
+do
+ case $1 in
+ -d) debug=$(($debug + 1))
+ shift
+ ;;
+ -R) cmdline="$cmdline --rate=$2"
+ shift
+ shift
+ ;;
+ -R*)
+ ropt=`echo $1 | sed 's/^-R/--rate=/'`
+ cmdline="$cmdline $ropt"
+ shift
+ ;;
+ -t|--lint|-s|--status|-S|--stop)
+ cmdline="$cmdline $1"
+ shift
+ ;;
+ -V|--version)
+ pies --version | sed -n '1s/^pies/inetd.sh/p'
+ exit
+ ;;
+ --usage)
+ echo "$0 [-dtsSV?] [-R rate] [--lint] [--status] [--stop] [--help]"
+ pad=`echo $0 | sed 's/./ /g'`
+ echo "$pad [--usage] [--version] [CONFIG [CONFIG...]] [-- PIES_OPTION]"
+ exit
+ ;;
+ -?|--help)
+ help
+ exit
+ ;;
+ --) shift
+ cmdline="$cmdline $@"
+ break
+ ;;
+ -*) echo >&2 "$0: unknown option"
+ exit 64
+ ;;
+ *) cmdline="$cmdline --config-file=$1"
+ shift
+ esac
+done
+
+if test $debug -gt 0; then
+ cmdline="$cmdline --debug=$debug"
+fi
+
+pies --inetd $cmdline

Return to:

Send suggestions and report system problems to the System administrator.