Checkpoint commit.
This commit is contained in:
parent
cf10ef2d7b
commit
29d8053770
9 changed files with 1236 additions and 24 deletions
83
bin/ezmlm-listd
Executable file
83
bin/ezmlm-listd
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/env ruby
|
||||
#
|
||||
# A startup script for an instance of Ezmlm::ListDaemon.
|
||||
# $Id$
|
||||
#
|
||||
# Authors:
|
||||
# * Michael Granger <mgranger@laika.com>
|
||||
# * Jeremiah Jordan <jjordan@laika.com>
|
||||
#
|
||||
|
||||
BEGIN {
|
||||
require 'pathname'
|
||||
basedir = Pathname.new( __FILE__ ).dirname.parent
|
||||
libdir = basedir + 'lib'
|
||||
|
||||
$LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
|
||||
}
|
||||
|
||||
begin
|
||||
require 'rubygems'
|
||||
require 'optparse'
|
||||
require 'ezmlm/listdaemon'
|
||||
rescue LoadError
|
||||
unless Object.const_defined?( :Gem )
|
||||
require 'rubygems'
|
||||
retry
|
||||
end
|
||||
raise
|
||||
end
|
||||
|
||||
|
||||
progname = Pathname.new( $0 ).basename
|
||||
opts = Ezmlm::ListDaemon.default_options
|
||||
|
||||
oparser = OptionParser.new do |oparser|
|
||||
oparser.accept( Pathname ) {|path| Pathname.new(path) }
|
||||
|
||||
oparser.banner = "Usage: #{progname.basename} OPTIONS LISTSDIRECTORY"
|
||||
oparser.separator 'Version ' + Ezmlm::VERSION
|
||||
|
||||
oparser.separator ''
|
||||
oparser.separator 'Options:'
|
||||
oparser.on( '--bind ADDRESS', '-b', String,
|
||||
"Specify the address to bind to. Defaults to '#{opts.bind_addr}'" ) do |bindaddr|
|
||||
opts.bind_addr = bindaddr
|
||||
end
|
||||
|
||||
oparser.on( '--port PORTNUMBER', '-p', Integer,
|
||||
"Specify the port to connect to. Defaults to '#{opts.bind_port}" ) do |portnumber|
|
||||
opts.bind_port = portnumber
|
||||
end
|
||||
|
||||
|
||||
oparser.separator ''
|
||||
oparser.separator 'Other Options:'
|
||||
oparser.on( '--debug', '-d', FalseClass, "Turn on debugging" ) do
|
||||
$DEBUG = true
|
||||
$stderr.puts "Debugging enabled."
|
||||
opts.debugmode = true
|
||||
end
|
||||
|
||||
oparser.on_tail( '--help', '-h', FalseClass, "Display help for the given command." ) do
|
||||
$stderr.puts( oparser )
|
||||
exit!( 0 )
|
||||
end
|
||||
|
||||
oparser.on_tail( '--version', '-V', "Print Ezmlm library version on STDOUT and quit." ) do
|
||||
$stdout.puts Ezmlm::VERSION
|
||||
exit!( 0 )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
# Parse command-line flags and display the help if there isn't exactly one argument
|
||||
remaining_args = oparser.parse( ARGV )
|
||||
if remaining_args.nitems != 1
|
||||
$stderr.puts( oparser )
|
||||
exit( 64 ) # EX_USAGE
|
||||
end
|
||||
|
||||
listsdir = remaining_args.shift
|
||||
daemon = Ezmlm::ListDaemon.new( listsdir, opts )
|
||||
daemon.start.join
|
||||
Loading…
Add table
Add a link
Reference in a new issue