From 18151ae9d83ee2175a47782baabe2a83612e8e8a Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sun, 8 Apr 2018 18:51:48 +0200 Subject: Initial commit --- .gitignore | 4 +++ Makefile | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ digest-mailer.conf.in | 0 digest-mailer.in | 35 ++++++++++++++++++++++++++ man.commons.in | 28 +++++++++++++++++++++ 5 files changed, 135 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 digest-mailer.conf.in create mode 100644 digest-mailer.in create mode 100644 man.commons.in diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e3ee81d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +digest-mailer +man.commons +*.common +*.1 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..abb7884 --- /dev/null +++ b/Makefile @@ -0,0 +1,68 @@ +# +# digest-mailer - sendmail replacement collecting emails into digests +# +# Copyright (c) 2013-2016 Erich Eckner +# +# This program 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 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +# USA. +# + +DESTDIR = +ETCDIR = /etc +BINDIR = /usr/bin +LIBDIR = /var/lib +MANDIR = /usr/share/man + +VERSION = 0.0 + +all: man.commons digest-mailer digest-mailer.1 + +%: %.in + sed " \ + s/#VERSION#/$(VERSION)/; \ + s@#BINDIR#@$(BINDIR)@; \ + s@#ETCDIR#@$(ETCDIR)@; \ + s@#LIBDIR#@$(LIBDIR)@; \ + s@#HELPTEXT#\(\s\+\)#@ --help \1display this help and exit\n --version\1display version and exit@; \ + " $< > $@ + [ "$@" = "digest-mailer" ] && chmod +x "$@" || true + +%.1: % man.commons + grep -v "^$<(" man.commons | sed '/^\[SEE ALSO]$$/{n;:a;N;/\[/b;s/\n/, /;ta;}' > "$<.common" && \ + help2man \ + -n 'sendmail replacement collecting emails into digests' \ + -o "$@" -N --include $<.common --no-discard-stderr "./$<" + +.PHONY: install dist clean + +install: all + install -d -m0755 $(DESTDIR)$(LIBDIR)/digest-mailer + install -D -m0755 digest-mailer $(DESTDIR)$(BINDIR)/digest-mailer + install -D -m0644 digest-mailer.1 $(DESTDIR)$(MANDIR)/man1/digest-mailer.1 + install -D -m0644 digest-mailer.conf $(DESTDIR)$(ETCDIR)/digest-mailer.conf + +clean: + ls -A | \ + grep "^\($(shell sed 's|\.|\\.|; s|\*|.*|; s|$$|\\|' .gitignore | tr '\n' '\|')\)\$$" | \ + xargs -r rm + +dist: clean + git status --porcelain 2> /dev/null | grep -q "\S" && (git add .; git commit -m"neue Version: $(VERSION)") || true + ! git tag -d v$(VERSION) 2> /dev/null + git tag v$(VERSION) + git push + git push --tags + +# End of file diff --git a/digest-mailer.conf.in b/digest-mailer.conf.in new file mode 100644 index 0000000..e69de29 diff --git a/digest-mailer.in b/digest-mailer.in new file mode 100644 index 0000000..4e88494 --- /dev/null +++ b/digest-mailer.in @@ -0,0 +1,35 @@ +#!/bin/bash + +verwendung() { + >&2 echo 'digest-mailer collects emails into digests before sending them.' + >&2 echo '' + >&2 echo 'Usage: digest-mailer [OPTIONS]' + >&2 echo \ +'#HELPTEXT# #' + exit 1 +} + +if [ "x$1" = 'x--help' ]; then + verwendung +fi + +if [ "x$1" = 'x--version' ]; then + echo '#VERSION#' + exit +fi + +if [ $# -ne 0 ]; then + verwendung +fi + +min_delay=3600 +max_delay=3600 +agressivity=0 +mail_cmd='sendmail -t' + +if [ -r #ETCDIR#/digest-mailer.conf ] +then + . #ETCDIR#/digest-mailer.conf +fi + +#TODO diff --git a/man.commons.in b/man.commons.in new file mode 100644 index 0000000..89bd536 --- /dev/null +++ b/man.commons.in @@ -0,0 +1,28 @@ +[CONFIGURATION] +The configfile \fB#ETCDIR#/digest-mailer.conf\fP is a bash script, which defines the following variables: +.TP +.B "min_delay" +minimum delay between consecutive emails in seconds (default: 3600) +.TP +.B "max_delay" +maximum delay of a sinlge email in seconds (default: 3600) +.TP +.B "agressivity" +how fast should emails be sent: 0 (as late as possible) ... 1 (as soon as possible) (default: 0) +.TP +.B "mail_cmd" +command used to send emails (default: 'sendmail -t') +[FILES] +.TP +.B "#BINDIR#/digest-mailer" +program file +.TP +.B "#ETCDIR#/digest-mailer.conf" +contains configuration +.TP +.B "#LIBDIR#/digest-mailer" +directory containing held emails and meta information +[AUTHOR] +.nf +Erich Eckner +.fi -- cgit v1.2.3-54-g00ecf