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
|
#!/usr/bin/env ruby
require 'rubygems'
require 'optparse'
require 'sequel' rescue nil
require 'sequel_core'
require 'sequel_model' rescue nil
require 'logger'
$uri = nil
$logfile = nil
$echo = nil
opts = OptionParser.new do |opts|
opts.banner = "Sequel: The Database Toolkit for Ruby"
opts.define_head "Usage: sequel <uri> [options]"
opts.separator ""
opts.separator "Examples:"
opts.separator " sequel sqlite:///blog.db"
opts.separator " sequel postgres://localhost/my_blog"
opts.separator ""
opts.separator "For more information see http://code.google.com/p/ruby-sequel"
opts.separator ""
opts.separator "Options:"
opts.on("-l", "--log logfile", "log SQL statements to log file") do |v|
$logfile = v
end
# opts.on("-e", "--echo", "echo SQL statements") do |v|
# $echo = v
# end
opts.on_tail("-?", "--help", "Show this message") do
puts opts
exit
end
opts.on_tail("-v", "--version", "Show version") do
class << Gem; attr_accessor :loaded_specs; end
specs = Gem.loaded_specs['sequel']
puts "sequel #{specs.version} (#{specs.date.strftime '%Y-%m-%d'})"
specs = Gem.loaded_specs['sequel_core']
puts "sequel_core #{specs.version} (#{specs.date.strftime '%Y-%m-%d'})"
begin
specs = Gem.loaded_specs['sequel_model']
puts "sequel_model #{specs.version} (#{specs.date.strftime '%Y-%m-%d'})"
rescue
end
exit
end
end
opts.parse!
db = ARGV.shift
if db.blank?
puts opts
exit
end
db_opts = {}
if $logfile
db_opts[:logger] = Logger.new($logfile)
end
if $echo
db_opts[:echo] = true
end
begin
puts "db_opts = #{db_opts.inspect}"
DB = Sequel.connect db, db_opts
rescue => e
puts e.message
exit
end
begin
DB.test_connection
rescue => e
puts e.message
puts e.backtrace.first
exit
end
require 'irb'
puts "Your database is stored in DB..."
IRB.start
__END__
#!/usr/bin/env ruby
require 'rubygems'
require 'optparse'
require 'bulkmail'
$helo = nil
$from = nil
$recipients = []
$content = nil
$delay = 60..300
opts = OptionParser.new do |opts|
opts.banner = "Usage: bulkmail <options>"
opts.define_head "Simple bulk-mailer."
opts.separator ""
opts.separator "Options:"
opts.on("-h", "--helo HOSTNAME", "HELO host name.") do |v|
$helo = v
end
opts.on("-r", "--recipients filename", "Recipients file name") do |v|
$recipients = IO.readlines(v).map {|l| l =~ /(.*)(\r\n|\n)$/ ? $1 : l}.compact
end
opts.on("-c", "--content filename", "Content file name") do |v|
$content = IO.read(v)
end
opts.on("-f", "--from from", "From address") do |v|
$from = v
end
opts.on('-n', "--nodelay", "No delay") do |v|
$delay = 0
end
# No argument, shows at tail. This will print an options summary.
# Try it and see!
opts.on_tail("-?", "--help", "Show this message") do
puts opts
exit
end
# Another typical switch to print the version.
opts.on_tail("-v", "--version", "Show version") do
class << Gem; attr_accessor :loaded_specs; end
specs = Gem.loaded_specs['bulkmail']
puts "bulkmail #{specs.version} (#{specs.date.strftime '%Y-%m-%d'})"
exit
end
end
begin
opts.parse! ARGV
rescue => e
puts e.message
puts e.backtrace.first
exit
end
unless $content
puts opts
exit
end
trap('INT') {exit}
puts "Please hold on..."
sender = BulkMail::Sender.new({
:list => $recipients,
:from => $from,
:message => $content,
:helo => $helo,
:delay => $delay
})
sender.start
|