imap-backup 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/.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: