#!/usr/bin/perl sub make_supervise ($dir,$log_dir,$ip,$port,$cdb_file,$suffix) { my $dir = shift; my $log_dir = shift; my $ip = shift; my $port = shift; my $cdb_file = shift; my $suffix = shift; system("mkdir -p $dir/supervise/qmail-send$suffix/log"); system("mkdir -p $dir/supervise/qmail-smtpd$suffix/log"); system("chmod +t $dir/supervise/qmail-send$suffix"); system("chmod +t $dir/supervise/qmail-smtpd$suffix"); system("mkdir -p $log_dir/qmail-send$suffix"); system("mkdir -p $log_dir/qmail-smtpd$suffix"); system("chown -R qmaill$suffix $log_dir/qmail-send$suffix"); system("chown -R qmaill$suffix $log_dir/qmail-smtpd$suffix"); open(RUN,">$dir/supervise/qmail-send$suffix/run") || die("Cant open run!"); print RUN ("#!/bin/sh\n"); print RUN ("exec $dir/rc\n"); close(RUN); system("chmod 0744 $dir/supervise/qmail-send$suffix/run"); open(RUN,">$dir/supervise/qmail-send$suffix/log/run") || die("Cant open run!"); print RUN ("#!/bin/sh\n"); print RUN ("exec /usr/local/bin/setuidgid qmaill$suffix /usr/local/bin/multilog t s2500000 $log_dir/qmail-send$suffix\n"); close(RUN); system("chmod 0744 $dir/supervise/qmail-send$suffix/log/run"); open(RUN,">$dir/supervise/qmail-smtpd$suffix/run") || die("Cant open run!"); print RUN ("#!/bin/sh\n"); print RUN ("QMAILDUID=`id -u qmaild$suffix`\n"); print RUN ("NOFILESGID=`id -g qmaild$suffix`\n"); print RUN ("exec /usr/local/bin/softlimit -m 2000000 \\\n"); print RUN (" /usr/local/bin/tcpserver -H -R -v -P -x $cdb_file \\\n"); print RUN (" -u \$QMAILDUID -g \$NOFILESGID $ip $port \\\n"); print RUN (" $dir/bin/qmail-smtpd 2>&1\n"); close(RUN); system("chmod 0744 $dir/supervise/qmail-smtpd$suffix/run"); open(RUN,">$dir/supervise/qmail-smtpd$suffix/log/run") || die("Cant open run!"); print RUN ("#!/bin/sh\n"); print RUN ("exec /usr/local/bin/setuidgid qmaill$suffix /usr/local/bin/multilog t s2500000 $log_dir/qmail-smtpd$suffix\n"); close(RUN); system("chmod 0744 $dir/supervise/qmail-smtpd$suffix/log/run"); open(RC,">$dir/rc") || die("Cant open rc!"); print RC ("#!/bin/sh\n"); print RC ("\n"); print RC ("exec env - PATH=\"$dir\/bin\:\$PATH\" \\\n"); print RC ("qmail-start .\/Maildir\/\n"); close(RC); system("chmod 0755 $dir/rc"); } sub ask_for_param () { my $dir; my $log_dir; my $ip; my $port; my $cdb_file; my $suffix; my $answer; print("You are now ready to create supervise dirs. First, I kneed to know few things:\n"); print("Where did You install qmail? (e.g. /var/qmail - default)\n"); $dir = ; chop($dir); if($dir eq "") { print("Assuming /var/qmail\n"); $dir = "/var/qmail"; } print("Where do You want to keep Your log files? (e.g. /var/log/qmail - default)\n"); $log_dir = ; chop($log_dir); if($log_dir eq "") { print("Assuming /var/log/qmail\n"); $log_dir = "/var/log/qmail"; } print("What IP address will Your qmail listen to? (e.g. 192.168.0.1, type 0 (default) for all interfaces)\n"); $ip = ; chop($ip); if($ip eq "") { print("Assuming all interfaces (0)\n"); $ip = 0; } print("And what port? (e.g. 25 - default)\n"); $port = ; chop($port); if($port eq "") { print("Assuming port 25\n"); $port = 25; } while(1) { print("Where is the cdb file for tcpserver? (e.g. /etc/tcp.smtp.cdb)\n"); $cdb_file = ; chop($cdb_file); if($cdb_file eq "") { print("No defaulting allowed!\n"); next; } last; } print("What suffix will You use? (e.g. -outside)\n"); $suffix = ; chop($suffix); if($suffix eq "") { print("Assuming no suffix!\n"); } print("OK, so You want me to create files as follows:\n"); print("Directory: $dir\n"); print("Log directory: $log_dir\n"); print("IP address: $ip\n"); print("Port: $port\n"); print("Control acces file for tcpserver: $cdb_file\n"); print("Suffix: $suffix\n"); print("\ny/n?\n"); $answer = ; chop($answer); if($answer eq "y") { &make_supervise($dir,$log_dir,$ip,$port,$cdb_file,$suffix);} elsif($answer eq "n") { print("Oki, bye...\n");} else { print("Must be really dumb one... bye.\n");} } &ask_for_param();