| Class | SieveCtl |
| In: |
sievectl
|
| Parent: | Object |
The SieveCtl class is a simple set of wrapper methods around the ones available on the ManageSieve class.
# File sievectl, line 176
176: def initialize(conf)
177: @manage_sieve = ManageSieve.new(conf)
178: end
Activates script.
# File sievectl, line 197
197: def activate(script)
198: raise ArgumentError, "`activate' requires a script name" unless script
199: @manage_sieve.set_active(script)
200: end
Adds a script named script, from file file. If file is nil, read the script from STDIN. Activates the script is active is true.
# File sievectl, line 213
213: def add(script, file=nil, active=false)
214: action = "add#{active ? 'active' : ''}"
215: raise ArgumentError, "`#{action}' requires a script name" unless script
216: data = file ? File.open(file).readlines.to_s : STDIN.readlines.to_s
217: unless @manage_sieve.have_space?(script, data.length)
218: raise SieveCommandError, "not enough space for script `#{script}' " +
219: "(#{data.length} bytes)"
220: end
221: @manage_sieve.put_script(script, data)
222: activate script if active
223: end
Prints the server capabilities.
# File sievectl, line 181
181: def capabilities
182: @manage_sieve.print_capabilities
183: end
Deactivates script. There is no DEACTIVATE command in the MANAGESIEVE draft, so we fetch the script, remove it and upload it again.
# File sievectl, line 204
204: def deactivate(script)
205: raise ArgumentError, "`deactivate' requires a script name" unless script
206: data = @manage_sieve.get_script(script)
207: @manage_sieve.delete_script(script)
208: @manage_sieve.put_script(script, data)
209: end
Deletes script
# File sievectl, line 226
226: def delete(script)
227: raise ArgumentError, "`activate' requires a script name" unless script
228: @manage_sieve.delete_script(script)
229: end
Lists the available scripts, specifying which one is active.
# File sievectl, line 186
186: def list
187: @manage_sieve.print_scripts
188: end