diff -u usr/bin/schleuder dev/bin/schleuder --- usr/bin/schleuder +++ usr/dev/schleuder @@ -44,8 +44,12 @@ arg = ARGV.shift if arg == '-test' process_test(ARGV) - elsif arg =~ /[A-Za-z0-9]+/ - process_list(arg.gsub(/-(sendkey|bounces)$/, '')) + elsif arg =~ /[A-Za-z0-9]+/ + l,d = arg.split('#') + l = l.gsub(/-(sendkey|bounce)$/, '') + list = l + list += '@' + d unless d.nil? + process_list(list) else usage end diff -u usr/bin/schleuder-newlist dev/bin/schleuder-newlist --- usr/bin/schleuder-newlist +++ dev/bin/schleuder-newlist @@ -128,17 +128,19 @@ end # Verify init member - Schleuder.log.debug "Verifying init member..." - list_initmember = ListCreator::verify_emailvar( - args[:list_initmember] || '', - interactive, - "Email address of the lists' initial member" - ) - list_initmemberkey = ListCreator::verify_filevar( - args[:list_initmemberkey] || '', - interactive, - "the public key of the lists' initial member" - ) + unless args[:list_initmember].nil? and args[:list_initmemberkey].nil? and !interactive + Schleuder.log.debug "Verifying init member..." + list_initmember = ListCreator::verify_emailvar( + args[:list_initmember], + interactive, + "Email address of the lists' initial member" + ) + list_initmemberkey = ListCreator::verify_filevar( + args[:list_initmemberkey], + interactive, + "the public key of the lists' initial member" + ) + end Schleuder.log.debug "Arguments verified..." Schleuder.log.debug "Initialize list..." @@ -162,10 +164,8 @@ Schleuder.log.debug "Import list's keypair..." ListCreator::import_keypair(list,list_privatekeyfile,list_publickeyfile) end - if (list_initmember != 'none' and list_initmemberkey != 'none') then - Schleuder.log.debug "Add initmember to list..." - ListCreator::add_init_member(list,list_initmember,list_initmemberkey) - end + Schleuder.log.debug "Add initmember to list..." + ListCreator::add_init_member(list,list_initmember,list_initmemberkey) # store the config Schleuder.log.debug "Store list config..." list.config = list.config @@ -185,8 +185,12 @@ end def self.add_init_member(list,list_initmember,list_initmemberkey) - Schleuder::Crypt.new(list.config.gpg_password).add_key_from_file(list_initmemberkey) - list.members = Array.new(1,Schleuder::Member.new({ :email => list_initmember })) + if list_initmember.nil? + list.members = Array.new + else + Schleuder::Crypt.new(list.config.gpg_password).add_key_from_file(list_initmemberkey) unless list_initmemberkey.nil? + list.members = Array.new(1,Schleuder::Member.new({ :email => list_initmember })) + end end def self.verify_strvar(var,interactive,question) diff -u usr/lib/ruby/1.8/schleuder/list.rb dev/lib/ruby/1.8/schleuder/list.rb --- usr/lib/ruby/1.8/schleuder/list.rb +++ dev/lib/ruby/1.8/schleuder/list.rb @@ -31,12 +31,13 @@ file = File.join(@listdir, Schleuder.config.lists_memberfile) @log.debug("reading #{file}") @_members = [] - YAML::load_file(file).each do |h| + yaml = YAML::load_file(file) + yaml.each do |h| unless h.kind_of? Schleuder::Member h = Schleuder::Member.new(h) end @_members << h - end + end unless yaml.nil? end @_members end