imap-backup 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.8.7
4
+ - 1.9.2
4
5
  - 1.9.3
5
6
  script: "bundle exec rake spec"
6
7
 
data/README.md CHANGED
@@ -18,44 +18,54 @@
18
18
 
19
19
  # Basic Usage
20
20
 
21
- * Create ~/.imap-backup
22
-
21
+ * Create ~/.imap-backup directory and configuration file
22
+
23
+ ```shell
24
+ $ cd
25
+ $ mkdir .imap-backup
26
+ $ chmod 0700 .imap-backup
27
+ $ cd .imap-backup
28
+ $ touch config.json
29
+ $ chmod 0600 config.json
30
+ ```
31
+
32
+ ```
33
+ {
34
+ "accounts":
35
+ [
23
36
  {
24
- accounts:
25
- [
26
- {
27
- username: "my.user@gmail.com",
28
- password: "secret",
29
- local_path: "/path/to/backup/root",
30
- folders:
31
- [
32
- {name: "[Gmail]/All Mail"},
33
- {name: "my_folder"}
34
- ]
35
- }
36
- ]
37
+ "username": "my.user@gmail.com",
38
+ "password": "secret",
39
+ "local_path": "/path/to/backup/root",
40
+ "folders":
41
+ [
42
+ {"name": "[Gmail]/All Mail"},
43
+ {"name": "my_folder"}
44
+ ]
37
45
  }
46
+ ]
47
+ }
48
+ ```
38
49
 
39
50
  * Run
40
51
 
41
52
  imap-backup
42
53
 
43
- # Usage
54
+ # Other Usage
44
55
 
45
- Check connection:
56
+ List IMAP folders:
46
57
 
47
- imap-backup --check
58
+ imap-backup folders
48
59
 
49
- List IMAP folders:
60
+ Get statistics of emails to download per folder:
50
61
 
51
- imap-backup --list
62
+ imap-backup status
52
63
 
53
64
  # Design Goals
54
65
 
55
66
  * Secure - use a local file protected by permissions
56
- * Restartable - calculate start point based on alreadt downloaded messages
57
- * Standards compliant - save emails in a standard format
58
- * Standalone - does not rely on an email client or MTA
67
+ * Restartable - calculate start point based on already downloaded messages
68
+ * Standalone - do not rely on an email client or MTA
59
69
 
60
70
  # Similar Software
61
71
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ require 'fileutils'
2
3
 
3
4
  module Imap
4
5
  module Backup
@@ -9,8 +10,9 @@ module Imap
9
10
 
10
11
  def initialize(path, folder)
11
12
  @path, @folder = path, folder
12
- check_permissions(@path, 0700)
13
- make_folder(@path, @folder, 'g-wrx,o-wrx')
13
+ permissions = 0700
14
+ check_permissions(@path, permissions)
15
+ make_folder(@path, @folder, permissions)
14
16
  end
15
17
 
16
18
  def uids
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'fileutils'
2
3
 
3
4
  module Imap
@@ -17,9 +18,9 @@ module Imap
17
18
  parts = path.split('/')
18
19
  return if parts.size == 0
19
20
  full_path = File.join(base_path, path)
20
- FileUtils.mkdir_p(full_path)
21
+ FileUtils.mkdir_p full_path
21
22
  first_directory = File.join(base_path, parts[0])
22
- FileUtils.chmod_R(permissions, first_directory)
23
+ FileUtils.chmod permissions, first_directory
23
24
  end
24
25
 
25
26
  private
@@ -2,7 +2,7 @@ module Imap
2
2
  module Backup
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- REVISION = 2
5
+ REVISION = 3
6
6
  VERSION = [ MAJOR, MINOR, REVISION ].map( &:to_s ).join( '.' )
7
7
  end
8
8
  end
@@ -23,7 +23,7 @@ describe Imap::Backup::Serializer::Directory do
23
23
  stat = stub('File::Stat', :mode => 0700)
24
24
  File.stub!(:stat).with('/base/path').and_return(stat)
25
25
  FileUtils.stub!(:mkdir_p).with('/base/path/my_folder')
26
- FileUtils.stub!(:chmod_R).with('g-wrx,o-wrx', '/base/path/my_folder')
26
+ FileUtils.stub!(:chmod).with(0700, '/base/path/my_folder')
27
27
  end
28
28
 
29
29
  subject { Imap::Backup::Serializer::Directory.new('/base/path', 'my_folder') }
@@ -52,7 +52,7 @@ describe Imap::Backup::Utils do
52
52
  end
53
53
 
54
54
  it 'should create the path' do
55
- FileUtils.stub!(:chmod_R)
55
+ FileUtils.stub!(:chmod)
56
56
 
57
57
  FileUtils.should_receive(:mkdir_p).with('/base/path/new/folder')
58
58
 
@@ -62,7 +62,7 @@ describe Imap::Backup::Utils do
62
62
  it 'should set permissions on the path' do
63
63
  FileUtils.stub!(:mkdir_p)
64
64
 
65
- FileUtils.should_receive(:chmod_R).with(0222, '/base/path/new')
65
+ FileUtils.should_receive(:chmod).with(0222, '/base/path/new')
66
66
 
67
67
  make_folder('/base/path', 'new/folder', 0222)
68
68
  end
metadata CHANGED
@@ -1,104 +1,119 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: imap-backup
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 3
10
+ version: 0.0.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Joe Yates
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-06-11 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-06-12 00:00:00 +01:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ version_requirements: *id001
32
+ name: rake
33
+ prerelease: false
22
34
  type: :runtime
35
+ - !ruby/object:Gem::Dependency
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ hash: 3
42
+ segments:
43
+ - 0
44
+ version: "0"
45
+ version_requirements: *id002
46
+ name: json
23
47
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
48
+ type: :runtime
49
+ - !ruby/object:Gem::Dependency
50
+ requirement: &id003 !ruby/object:Gem::Requirement
25
51
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ version_requirements: *id003
31
60
  name: pry
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
61
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
62
+ type: :development
63
+ - !ruby/object:Gem::Dependency
64
+ requirement: &id004 !ruby/object:Gem::Requirement
41
65
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ hash: 3
70
+ segments:
71
+ - 0
72
+ version: "0"
73
+ version_requirements: *id004
47
74
  name: pry-doc
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
75
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: rspec
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: 2.3.0
70
76
  type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
77
+ - !ruby/object:Gem::Dependency
78
+ requirement: &id005 !ruby/object:Gem::Requirement
73
79
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 2
86
+ - 3
87
+ - 0
77
88
  version: 2.3.0
78
- - !ruby/object:Gem::Dependency
79
- name: simplecov
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
89
+ version_requirements: *id005
90
+ name: rspec
87
91
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
92
+ type: :development
93
+ - !ruby/object:Gem::Dependency
94
+ requirement: &id006 !ruby/object:Gem::Requirement
89
95
  none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ version_requirements: *id006
104
+ name: rcov
105
+ prerelease: false
106
+ type: :development
94
107
  description: Backup GMail, or any other IMAP email service, to disk.
95
- email:
108
+ email:
96
109
  - joe.g.yates@gmail.com
97
- executables:
110
+ executables:
98
111
  - imap-backup
99
112
  extensions: []
113
+
100
114
  extra_rdoc_files: []
101
- files:
115
+
116
+ files:
102
117
  - .gitignore
103
118
  - .travis.yml
104
119
  - Gemfile
@@ -123,37 +138,41 @@ files:
123
138
  - spec/unit/serializer/directory_spec.rb
124
139
  - spec/unit/settings_spec.rb
125
140
  - spec/unit/utils_spec.rb
141
+ has_rdoc: true
126
142
  homepage: https://github.com/joeyates/imap-backup
127
143
  licenses: []
144
+
128
145
  post_install_message:
129
146
  rdoc_options: []
130
- require_paths:
147
+
148
+ require_paths:
131
149
  - lib
132
- required_ruby_version: !ruby/object:Gem::Requirement
150
+ required_ruby_version: !ruby/object:Gem::Requirement
133
151
  none: false
134
- requirements:
135
- - - ! '>='
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- segments:
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ hash: 3
156
+ segments:
139
157
  - 0
140
- hash: 3223776400470663453
141
- required_rubygems_version: !ruby/object:Gem::Requirement
158
+ version: "0"
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
160
  none: false
143
- requirements:
144
- - - ! '>='
145
- - !ruby/object:Gem::Version
146
- version: '0'
147
- segments:
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ hash: 3
165
+ segments:
148
166
  - 0
149
- hash: 3223776400470663453
167
+ version: "0"
150
168
  requirements: []
169
+
151
170
  rubyforge_project:
152
- rubygems_version: 1.8.23
171
+ rubygems_version: 1.6.2
153
172
  signing_key:
154
173
  specification_version: 3
155
174
  summary: Backup GMail (or other IMAP) accounts to disk
156
- test_files:
175
+ test_files:
157
176
  - spec/gather_rspec_coverage.rb
158
177
  - spec/spec_helper.rb
159
178
  - spec/unit/account/connection_spec.rb
@@ -162,4 +181,3 @@ test_files:
162
181
  - spec/unit/serializer/directory_spec.rb
163
182
  - spec/unit/settings_spec.rb
164
183
  - spec/unit/utils_spec.rb
165
- has_rdoc: