File: sequel

package info (click to toggle)
libsequel-core-ruby 1.5.1-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 648 kB
  • ctags: 840
  • sloc: ruby: 10,949; makefile: 36
file content (171 lines) | stat: -rwxr-xr-x 3,493 bytes parent folder | download
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