aboutsummaryrefslogtreecommitdiffstats
path: root/patches/schleuder.patch
blob: c9b6799ccf9b4a496f459ca6f3ba8008d58246f8 (plain)
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
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