#!/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