imap_archiver 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +14 -0
- data/Gemfile.lock +59 -0
- data/README.rdoc +28 -2
- data/Rakefile +2 -4
- data/VERSION +1 -1
- data/lib/imap_archiver/archiver.rb +2 -2
- data/spec/imap_archiver_spec.rb +1 -1
- metadata +271 -18
- data/.gitignore +0 -21
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
|
data/Gemfile.lock
ADDED
@@ -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)
|
data/README.rdoc
CHANGED
@@ -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 =
|
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.
|
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.
|
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
|
data/spec/imap_archiver_spec.rb
CHANGED
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:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
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-
|
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
|
-
|
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
|
-
|
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:
|
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
|
-
|
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:
|
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
|
-
|
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:
|
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:
|
63
|
-
|
64
|
-
|
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
|
-
-
|
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
|
-
|
357
|
+
rdoc_options: []
|
358
|
+
|
106
359
|
require_paths:
|
107
360
|
- lib
|
108
361
|
required_ruby_version: !ruby/object:Gem::Requirement
|