Commit | Line | Data |
---|---|---|
2ea8f66b IK |
1 | #!/usr/bin/perl |
2 | ##--------------------------------------------------------------------------## | |
3 | ## File: | |
4 | ## $Id: read-mail,v 1.10 2002/09/15 03:33:08 ehood Exp $ | |
5 | ## Description: | |
6 | ## Read mail spool and archive messages. | |
7 | ##--------------------------------------------------------------------------## | |
8 | ## Copyright (C) 2001 Earl Hood <earl@earlhood.com> | |
9 | ## | |
10 | ## This program is free software; you can redistribute it and/or modify | |
11 | ## it under the terms of the GNU General Public License as published by | |
12 | ## the Free Software Foundation; either version 2 of the License, or | |
13 | ## (at your option) any later version. | |
14 | ## | |
15 | ## This program is distributed in the hope that it will be useful, | |
16 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ## GNU General Public License for more details. | |
19 | ## | |
20 | ## You should have received a copy of the GNU General Public License | |
21 | ## along with this program; if not, write to the Free Software | |
22 | ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA | |
23 | ## 02111-1307, USA | |
24 | ##--------------------------------------------------------------------------## | |
25 | ||
26 | package MHArc::read_mail; | |
27 | ||
28 | ##--------------------------------------------------------------------------## | |
29 | # <x-boot-strap> | |
30 | BEGIN { die qq/CGI use FORBIDDEN!\n/ if (defined($ENV{'GATEWAY_INTERFACE'})); } | |
31 | my $Dir; BEGIN { $Dir = `dirname $0`; chomp $Dir; } | |
32 | use lib "$Dir/../lib"; # Add relative lib to search path | |
33 | # </x-boot-strap> | |
34 | ##--------------------------------------------------------------------------## | |
35 | # <x-config> | |
36 | use MHArc::Config; | |
37 | my $config = MHArc::Config->load("$Dir/../lib/config.sh"); | |
38 | # </x-config> | |
39 | ##--------------------------------------------------------------------------## | |
40 | ||
41 | ||
42 | use Getopt::Long; | |
43 | use MHArc::Util qw( ch_dir cmd usage ); | |
44 | ||
45 | MAIN: { | |
46 | # Grap command-line options | |
47 | my %opt = ( ); | |
48 | my $clstatus = GetOptions(\%opt, | |
49 | 'force!', | |
50 | 'home=s', | |
51 | 'verbose!', | |
52 | ||
53 | 'help', | |
54 | 'man', | |
55 | ); | |
56 | usage(0) unless $clstatus; | |
57 | usage(1) if $opt{'help'}; | |
58 | usage(2) if $opt{'man'}; | |
59 | ||
60 | my $verbose = $opt{'verbose'}; | |
61 | if ($verbose) { | |
62 | $MHArc::Util::ECHO_CMDS = 1; | |
63 | } | |
64 | ||
65 | my $home = $opt{'home'} || | |
66 | $config->{'SW_ROOT'} || | |
67 | "$Dir/.."; | |
68 | my $force = $opt{'force'}; | |
69 | ||
70 | ch_dir($home) || | |
71 | die qq/ERROR: Unable to change directory to "$home": $!\n/; | |
72 | ||
73 | if (-e '.noarchive') { | |
74 | print "Archiving is currently disabled\n" if $verbose; | |
75 | if (!$force) { | |
76 | exit 0; | |
77 | } | |
78 | print "However, -force specified, so continuing...\n" if $verbose; | |
79 | } | |
80 | ||
81 | my @cmd_args = (); | |
82 | push(@cmd_args, '-verbose') if $verbose; | |
83 | if (cmd('./bin/filter-spool', @cmd_args) == 0) { | |
84 | cmd('./bin/web-archive', @cmd_args); | |
85 | } | |
86 | } | |
87 | ||
88 | ##---------------------------------------------------------------------------## | |
89 | __END__ | |
90 | ||
91 | =head1 NAME | |
92 | ||
93 | read-mail - Archive incoming mail | |
94 | ||
95 | =head1 SYNOPSIS | |
96 | ||
97 | read-mail | |
98 | read-mail [options] | |
99 | ||
100 | =head1 DESCRIPTION | |
101 | ||
102 | This program is part of mharc and is the main program for archiving | |
103 | mail. It is generally called via cron. | |
104 | ||
105 | This program does very little itself, but it invokes other mharc | |
106 | scripts to do all the work. | |
107 | ||
108 | If the file C<.noarchive> exists in mharc root directory, then this | |
109 | program will do nothing and exit (unless the C<-force> option is | |
110 | specified). This is to allow one to disable incoming mail processing | |
111 | while performing administrative tasks. | |
112 | ||
113 | =head1 OPTIONS | |
114 | ||
115 | This program is generally called without any command-line options | |
116 | since it will read C<E<lt>mharc-rootE<gt>/lib/config.sh> for any configurable | |
117 | options. Regardless, the following command-line options are | |
118 | available: | |
119 | ||
120 | =over | |
121 | ||
122 | =item C<-help> | |
123 | ||
124 | Print out usage information. | |
125 | ||
126 | =item C<-home> I<pathname> | |
127 | ||
128 | Root pathname of archiving software and data. If not specified, | |
129 | C<SW_ROOT> variable in C<config.sh> is used, else the parent directory | |
130 | that contains this program is used. | |
131 | ||
132 | =item C<-man> | |
133 | ||
134 | Print out entire manpage. | |
135 | ||
136 | =item C<-verbose> | |
137 | ||
138 | Print out status messages. | |
139 | ||
140 | =back | |
141 | ||
142 | =head1 FILES | |
143 | ||
144 | =over | |
145 | ||
146 | =item C<I<mharc-root>/lib/config.sh> | |
147 | ||
148 | Main configuration file for mharc. | |
149 | ||
150 | =back | |
151 | ||
152 | =head1 VERSION | |
153 | ||
154 | $Id: read-mail,v 1.10 2002/09/15 03:33:08 ehood Exp $ | |
155 | ||
156 | =head1 AUTHOR | |
157 | ||
158 | Earl Hood, earl@earlhood.com | |
159 | ||
160 | This program is part of the mharc archiving system and comes with | |
161 | ABSOLUTELY NO WARRANTY and may be copied only under the terms of | |
162 | the GNU General Public License, which may be found in the mharc | |
163 | distribution. | |
164 | ||
165 | =cut | |
166 |