mailinglist.rb/bin/db_mailinglist_create

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