/usr/bin/mlmmj-make-ml is in mlmmj 1.2.18.1-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | #!/bin/sh
#
# mlmmj-make-ml - henne@hennevogel.de
#
VERSION="0.1"
DEFAULTDIR="/var/spool/mlmmj"
ALIASFILE=/etc/aliases
USAGE="mlmmj-make-ml $VERSION
$0
             [-h] [-L listname] [-s spooldir] [-a] [-c user] [-z]
 -h: display this help text
 -L: the name of the mailing list
 -s: your spool directory (default $DEFAULTDIR)
 -a: create the needed entries in your $ALIASFILE file
 -c: user to chown the spool directory to (default not to chown at all)
 -z: do nothing for now
"
while getopts ":hL:s:azc:" Option
do
case "$Option" in 
	h )
	echo "$USAGE"
	exit 0
	;;
	z )
	echo -n "nothing"
	exit 0
	;;
	L )
	LISTNAME="$OPTARG"
	;;
	s )
	SPOOLDIR="$OPTARG"
	;;
	a )
	A_CREATE="YES"
	;;
	c )
	DO_CHOWN=1
	CHOWN="$OPTARG"
	;;
	* )
	echo "$0: invalid option"
	echo "Try $0 -h for more information."
	exit 1
esac
done
SHIFTVAL=$((OPTIND-1))
shift $SHIFTVAL
if [ -z "$SPOOLDIR" ]; then
	SPOOLDIR="$DEFAULTDIR"
fi
echo "Creating Directorys below $SPOOLDIR. Use '-s spooldir' to change"
if [ -z "$LISTNAME" ]; then
	echo -n "What should the name of the Mailinglist be? [mlmmj-test] : "
	read LISTNAME
	if [ -z "$LISTNAME" ]; then
	LISTNAME="mlmmj-test"
	fi
fi
LISTDIR="$SPOOLDIR/$LISTNAME"
mkdir -p $LISTDIR
for DIR in incoming queue queue/discarded archive text subconf unsubconf \
	   bounce control moderation subscribers.d digesters.d requeue \
	   nomailsubs.d
do
	mkdir "$LISTDIR"/"$DIR"
done
test -f "$LISTDIR"/index || touch "$LISTDIR"/index
echo -n "The Domain for the List? [] : "
read FQDN
if [ -z "$FQDN" ]; then
	FQDN=`domainname -f`
fi
echo -n "The emailaddress of the list owner? [postmaster] : "
read OWNER
if [ -z "$OWNER" ]; then
	OWNER="postmaster"
fi
echo "$OWNER" > "$LISTDIR"/"control/owner"
(
	cd "/usr/share/mlmmj/text.skel"
	echo
	echo "For the list texts you can choose between the following languages or"
	echo "give a absolute path to a directory containing the texts."
	echo
	echo "Available languages:"
	ls
	TEXTPATHDEF=en
	echo -n "The path to texts for the list? [$TEXTPATHDEF] : "
	read TEXTPATHIN
	if [ -z "$TEXTPATHIN" ] ; then
		TEXTPATH="$TEXTPATHDEF"
	else
		TEXTPATH="$TEXTPATHIN"
	fi
	if [ ! -d "$TEXTPATH" ]; then
		echo
		echo "**NOTE** Could not copy the texts for the list"
		echo "Please manually copy the files from the listtexts/ directory"
		echo "in the source distribution of mlmmj."
		sleep 2
	else
		cp "$TEXTPATH"/* "$LISTDIR"/"text"
	fi
)
LISTADDRESS="$LISTNAME@$FQDN"
echo "$LISTADDRESS" > "$LISTDIR"/control/"listaddress"
MLMMJRECEIVE=`which mlmmj-receive 2>/dev/null`
if [ -z "$MLMMJRECEIVE" ]; then
	MLMMJRECEIVE="/path/to/mlmmj-receive"
fi
MLMMJMAINTD=`which mlmmj-maintd 2>/dev/null`
if [ -z "$MLMMJMAINTD" ]; then
	MLMMJMAINTD="/path/to/mlmmj-maintd"
fi
ALIAS="$LISTNAME:  \"|$MLMMJRECEIVE -L $SPOOLDIR/$LISTNAME/\""
CRONENTRY="0 */2 * * * \"$MLMMJMAINTD -F -L $SPOOLDIR/$LISTNAME/\""
if [ -n "$A_CREATE" ]; then
	echo "I want to add the following to your $ALIASFILE file:"
	echo "$ALIAS"
	echo -n "is this ok? [y/N] : "
	read OKIDOKI
	case $OKIDOKI in
		y|Y)
		echo "$ALIAS" >> $ALIASFILE
		;;
		n|N)
		exit 0
		;;
		*)
		echo "Options was: y, Y, n or N"
	esac
else
	echo
	echo "Don't forget to add this to $ALIASFILE:"
	echo "$ALIAS"
fi
if [ "$DO_CHOWN" ] ; then
	echo
	echo -n "chown -R $CHOWN $SPOOLDIR/$LISTNAME? [y/n]: "
	read OKIDOKI
	case $OKIDOKI in
		y|Y)
			chown -R $CHOWN $SPOOLDIR/$LISTNAME
		;;
		n|N)
			exit 0
		;;
		*)
			echo "option is: y, Y, n, N"
		;;
	esac
fi
echo
echo "If you're not starting mlmmj-maintd in daemon mode,"
echo "don't forget to add this to your crontab:"
echo "$CRONENTRY"
echo
echo " ** FINAL NOTES **
1) The mailinglist directory have to be owned by the user running the 
mailserver (i.e. starting the binaries to work the list)
2) Run newaliases"
 |