imap_archiver 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'activesupport', '~> 2.3.8'
4
+ gem 'i18n'
5
+ group :development do
6
+ gem 'rake', '~> 0.8.7'
7
+ gem 'jeweler', '~> 1.5.1'
8
+ gem 'rspec', '~> 2.0.0'
9
+ gem 'cucumber', :git => 'http://github.com/aslakhellesoy/cucumber.git'
10
+ gem 'aruba'
11
+ gem 'mocha'
12
+ gem 'autotest'
13
+ gem 'autotest-growl'
14
+ end
@@ -0,0 +1,59 @@
1
+ GIT
2
+ remote: http://github.com/aslakhellesoy/cucumber.git
3
+ revision: d79ecee
4
+ specs:
5
+ cucumber (0.9.0)
6
+ builder (~> 2.1.2)
7
+ diff-lcs (~> 1.1.2)
8
+ gherkin (~> 2.2.0)
9
+ json_pure (~> 1.4.6)
10
+ term-ansicolor (~> 1.0.5)
11
+
12
+ GEM
13
+ remote: http://rubygems.org/
14
+ specs:
15
+ activesupport (2.3.10)
16
+ aruba (0.2.1)
17
+ autotest (4.3.2)
18
+ autotest-growl (0.2.5)
19
+ builder (2.1.2)
20
+ diff-lcs (1.1.2)
21
+ gherkin (2.2.0)
22
+ trollop (~> 1.16.2)
23
+ git (1.2.5)
24
+ i18n (0.4.1)
25
+ jeweler (1.5.1)
26
+ bundler (~> 1.0.0)
27
+ git (>= 1.2.5)
28
+ rake
29
+ json_pure (1.4.6)
30
+ mocha (0.9.8)
31
+ rake
32
+ rake (0.8.7)
33
+ rspec (2.0.1)
34
+ rspec-core (~> 2.0.1)
35
+ rspec-expectations (~> 2.0.1)
36
+ rspec-mocks (~> 2.0.1)
37
+ rspec-core (2.0.1)
38
+ rspec-expectations (2.0.1)
39
+ diff-lcs (>= 1.1.2)
40
+ rspec-mocks (2.0.1)
41
+ rspec-core (~> 2.0.1)
42
+ rspec-expectations (~> 2.0.1)
43
+ term-ansicolor (1.0.5)
44
+ trollop (1.16.2)
45
+
46
+ PLATFORMS
47
+ ruby
48
+
49
+ DEPENDENCIES
50
+ activesupport (~> 2.3.8)
51
+ aruba
52
+ autotest
53
+ autotest-growl
54
+ cucumber!
55
+ i18n
56
+ jeweler (~> 1.5.1)
57
+ mocha
58
+ rake (~> 0.8.7)
59
+ rspec (~> 2.0.0)
@@ -6,7 +6,7 @@ For every folder that is archived a series of folders (one for each month) is cr
6
6
 
7
7
  == Installing
8
8
  gem install imap_archiver
9
-
9
+
10
10
  == Configuration
11
11
 
12
12
  Create a configuration file in ~/.imap_archiver.rb
@@ -15,18 +15,44 @@ Create a configuration file in ~/.imap_archiver.rb
15
15
  config.imap_server = 'imap.example.com'
16
16
  config.username = 'jellehelsen'
17
17
  config.password = "secret"
18
- config.folders_to_archive = %w(Support Backuplogs)
18
+ config.folders_to_archive = ["Shared Folders/Support" "Shared Folders/Backuplogs" "Shared Folders/Info"]
19
19
  config.archive_folder = 'Archive'
20
20
  config.base_folder = 'Shared Folders' # part to strip of source folder name to get archive folder name
21
21
  config.archive_folder_acl = {'jelle' => 'lrswpcd'}
22
22
  end
23
23
 
24
+ == How it works
25
+
26
+ imap_archiver works by moving messages that are older then 3 months and that have been read and not flagged to a different folder. This helps in cleaning out public folders that get too big to work with.
27
+
28
+ Consider the following folder structure:
29
+ + Shared Folders
30
+ - Support
31
+ - Backuplogs
32
+ - Info
33
+
34
+ Given the configuration above, this would be archive as such:
35
+ + Archive
36
+ - Support
37
+ - Mar 2010
38
+ - Apr 2010
39
+ - ...
40
+ - Backuplogs
41
+ - Mar 2010
42
+ - Apr 2010
43
+ - ...
44
+
24
45
  == Known bugs
25
46
 
26
47
  The documentation is sparse to non-existing.
27
48
  It has only been tested against my own cyrus-imap server and a dovecot test server.
28
49
  For all unknown bugs: file an issue report! Creating a patch yourself helps in getting it fixed quickly.
29
50
 
51
+ == TODO
52
+
53
+ * Make the archive period configurable
54
+ * Make the archive folder name configurable
55
+
30
56
  == Note on Patches/Pull Requests
31
57
 
32
58
  * Fork the project.
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
+ require "bundler"
3
4
 
4
5
  begin
5
6
  require 'jeweler'
@@ -12,10 +13,7 @@ begin
12
13
  gem.email = "jelle.helsen@hcode.be"
13
14
  gem.homepage = "http://github.com/jellehelsen/imap_archiver"
14
15
  gem.authors = ["Jelle Helsen"]
15
- gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
16
- gem.add_development_dependency "aruba", ">= 0"
17
- gem.add_dependency 'activesupport', '>= 3.0.0'
18
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ gem.add_bundler_dependencies
19
17
  end
20
18
  Jeweler::GemcutterTasks.new
21
19
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -17,10 +17,10 @@ module ImapArchiver
17
17
  self.connection = Net::IMAP.new(imap_server) rescue nil
18
18
  capability = self.connection.capability rescue nil
19
19
  if capability.detect {|c| c =~ /AUTH=(CRAM|DIGEST)-MD5/}
20
- puts "loging in with #{auth_mech}"
20
+ # puts "loging in with #{auth_mech}"
21
21
  self.connection.authenticate(auth_mech,username,password)
22
22
  else
23
- puts "plain login"
23
+ # puts "plain login"
24
24
  self.connection.login(username,password) rescue nil
25
25
  end
26
26
  end
@@ -2,6 +2,6 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
3
  describe "ImapArchiver" do
4
4
  it "should read the correct version" do
5
- ImapArchiver::Version.should == "0.0.1"
5
+ ImapArchiver::Version.should == "0.0.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap_archiver
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jelle Helsen
@@ -15,13 +15,28 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-02 00:00:00 +02:00
18
+ date: 2010-12-17 00:00:00 +01:00
19
19
  default_executable: imap_archiver
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: thoughtbot-shoulda
22
+ type: :runtime
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 19
29
+ segments:
30
+ - 2
31
+ - 3
32
+ - 8
33
+ version: 2.3.8
23
34
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
35
+ name: activesupport
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ type: :runtime
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
25
40
  none: false
26
41
  requirements:
27
42
  - - ">="
@@ -30,12 +45,102 @@ dependencies:
30
45
  segments:
31
46
  - 0
32
47
  version: "0"
48
+ prerelease: false
49
+ name: i18n
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
33
52
  type: :development
34
- version_requirements: *id001
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 49
59
+ segments:
60
+ - 0
61
+ - 8
62
+ - 7
63
+ version: 0.8.7
64
+ prerelease: false
65
+ name: rake
66
+ requirement: *id003
35
67
  - !ruby/object:Gem::Dependency
68
+ type: :development
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 1
75
+ segments:
76
+ - 1
77
+ - 5
78
+ - 1
79
+ version: 1.5.1
80
+ prerelease: false
81
+ name: jeweler
82
+ requirement: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ type: :development
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ hash: 15
91
+ segments:
92
+ - 2
93
+ - 0
94
+ - 0
95
+ version: 2.0.0
96
+ prerelease: false
97
+ name: rspec
98
+ requirement: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ type: :development
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ prerelease: false
111
+ name: cucumber
112
+ requirement: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ type: :development
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ hash: 3
121
+ segments:
122
+ - 0
123
+ version: "0"
124
+ prerelease: false
36
125
  name: aruba
126
+ requirement: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ type: :development
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ hash: 3
135
+ segments:
136
+ - 0
137
+ version: "0"
37
138
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
139
+ name: mocha
140
+ requirement: *id008
141
+ - !ruby/object:Gem::Dependency
142
+ type: :development
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
39
144
  none: false
40
145
  requirements:
41
146
  - - ">="
@@ -44,24 +149,171 @@ dependencies:
44
149
  segments:
45
150
  - 0
46
151
  version: "0"
152
+ prerelease: false
153
+ name: autotest
154
+ requirement: *id009
155
+ - !ruby/object:Gem::Dependency
47
156
  type: :development
48
- version_requirements: *id002
157
+ version_requirements: &id010 !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
166
+ prerelease: false
167
+ name: autotest-growl
168
+ requirement: *id010
49
169
  - !ruby/object:Gem::Dependency
170
+ type: :runtime
171
+ version_requirements: &id011 !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ~>
175
+ - !ruby/object:Gem::Version
176
+ hash: 19
177
+ segments:
178
+ - 2
179
+ - 3
180
+ - 8
181
+ version: 2.3.8
182
+ prerelease: false
50
183
  name: activesupport
184
+ requirement: *id011
185
+ - !ruby/object:Gem::Dependency
186
+ type: :runtime
187
+ version_requirements: &id012 !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ hash: 3
193
+ segments:
194
+ - 0
195
+ version: "0"
196
+ prerelease: false
197
+ name: i18n
198
+ requirement: *id012
199
+ - !ruby/object:Gem::Dependency
200
+ type: :development
201
+ version_requirements: &id013 !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ~>
205
+ - !ruby/object:Gem::Version
206
+ hash: 49
207
+ segments:
208
+ - 0
209
+ - 8
210
+ - 7
211
+ version: 0.8.7
51
212
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
213
+ name: rake
214
+ requirement: *id013
215
+ - !ruby/object:Gem::Dependency
216
+ type: :development
217
+ version_requirements: &id014 !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ hash: 1
223
+ segments:
224
+ - 1
225
+ - 5
226
+ - 1
227
+ version: 1.5.1
228
+ prerelease: false
229
+ name: jeweler
230
+ requirement: *id014
231
+ - !ruby/object:Gem::Dependency
232
+ type: :development
233
+ version_requirements: &id015 !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ~>
237
+ - !ruby/object:Gem::Version
238
+ hash: 15
239
+ segments:
240
+ - 2
241
+ - 0
242
+ - 0
243
+ version: 2.0.0
244
+ prerelease: false
245
+ name: rspec
246
+ requirement: *id015
247
+ - !ruby/object:Gem::Dependency
248
+ type: :development
249
+ version_requirements: &id016 !ruby/object:Gem::Requirement
53
250
  none: false
54
251
  requirements:
55
252
  - - ">="
56
253
  - !ruby/object:Gem::Version
57
- hash: 7
254
+ hash: 3
58
255
  segments:
59
- - 3
60
256
  - 0
257
+ version: "0"
258
+ prerelease: false
259
+ name: cucumber
260
+ requirement: *id016
261
+ - !ruby/object:Gem::Dependency
262
+ type: :development
263
+ version_requirements: &id017 !ruby/object:Gem::Requirement
264
+ none: false
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ hash: 3
269
+ segments:
61
270
  - 0
62
- version: 3.0.0
63
- type: :runtime
64
- version_requirements: *id003
271
+ version: "0"
272
+ prerelease: false
273
+ name: aruba
274
+ requirement: *id017
275
+ - !ruby/object:Gem::Dependency
276
+ type: :development
277
+ version_requirements: &id018 !ruby/object:Gem::Requirement
278
+ none: false
279
+ requirements:
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ hash: 3
283
+ segments:
284
+ - 0
285
+ version: "0"
286
+ prerelease: false
287
+ name: mocha
288
+ requirement: *id018
289
+ - !ruby/object:Gem::Dependency
290
+ type: :development
291
+ version_requirements: &id019 !ruby/object:Gem::Requirement
292
+ none: false
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ hash: 3
297
+ segments:
298
+ - 0
299
+ version: "0"
300
+ prerelease: false
301
+ name: autotest
302
+ requirement: *id019
303
+ - !ruby/object:Gem::Dependency
304
+ type: :development
305
+ version_requirements: &id020 !ruby/object:Gem::Requirement
306
+ none: false
307
+ requirements:
308
+ - - ">="
309
+ - !ruby/object:Gem::Version
310
+ hash: 3
311
+ segments:
312
+ - 0
313
+ version: "0"
314
+ prerelease: false
315
+ name: autotest-growl
316
+ requirement: *id020
65
317
  description: |-
66
318
  imap_archiver is a command line tool to archive messages on an imap server.
67
319
  You tell it what folders to archive and where to archive it.
@@ -76,7 +328,8 @@ extra_rdoc_files:
76
328
  - README.rdoc
77
329
  files:
78
330
  - .document
79
- - .gitignore
331
+ - Gemfile
332
+ - Gemfile.lock
80
333
  - LICENSE
81
334
  - README.rdoc
82
335
  - Rakefile
@@ -101,8 +354,8 @@ homepage: http://github.com/jellehelsen/imap_archiver
101
354
  licenses: []
102
355
 
103
356
  post_install_message:
104
- rdoc_options:
105
- - --charset=UTF-8
357
+ rdoc_options: []
358
+
106
359
  require_paths:
107
360
  - lib
108
361
  required_ruby_version: !ruby/object:Gem::Requirement
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
- tmp
21
- ## PROJECT::SPECIFIC