diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-28 13:35:13 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-28 13:35:13 +0200 |
commit | 0a2857fb3ffd9afe6f245d44672fbdf31aed6de0 (patch) | |
tree | 2d2e67158d96d9b3ac5ba61847019c6c4e3b1c7c | |
parent | 36a53f1875a097fa16bceaf674dc627d916651df (diff) | |
download | pies-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.ac | 8 | ||||
-rw-r--r-- | src/.gitignore | 1 | ||||
-rw-r--r-- | src/Makefile.am | 18 | ||||
-rw-r--r-- | src/inetd.in | 90 |
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 |