40 lines
998 B
Ruby
Executable File
40 lines
998 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
$LOAD_PATH << File.join(Dir.pwd, "lib")
|
|
|
|
require "app"
|
|
require "optparse"
|
|
require "uuid"
|
|
require "protocols"
|
|
require "models"
|
|
|
|
options = {
|
|
name: UUID.generate,
|
|
strategy: "free",
|
|
}
|
|
|
|
OptionParser.new do |opts|
|
|
opts.banner = "Usage: db_mailinglist_create [options]"
|
|
|
|
opts.on("-s=STRATEGY", "--strategy=STRATEGY", "free/validated/closed") do |v|
|
|
options[:strategy] = v
|
|
end
|
|
|
|
opts.on("-n=NAME", "--name=NAME", "Define the name of the option") do |v|
|
|
options[:name] = v
|
|
end
|
|
|
|
opts.on("-e=EMAIL", "--email=EMAIL", "Initialize the list with some emails, separated with ,") do |email|
|
|
options[:emails] ||= []
|
|
options[:emails] << email
|
|
end
|
|
end.parse!
|
|
|
|
options[:suffix] = options[:name].gsub(/[^a-zA-Z0-9]+/, '-')
|
|
mailinglist = Mailinglist.build(name: options[:name], suffix: options[:suffix], strategy: options[:strategy]).save
|
|
pp mailinglist
|
|
|
|
options[:emails].each do |email|
|
|
pp Email.register!(name: email, email: email, mailinglist: mailinglist)
|
|
end
|