imap-backup 9.0.2 → 9.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2482ddc0519b2eb1b1160cee2aae34befdb8faa4acf9de2127be214bac3907f
4
- data.tar.gz: 2ed7b7b25497ee53cdfd1735628401076defaee63829aa9bfabd5fc483e69a28
3
+ metadata.gz: f5cf8072ca8c7a95ca74edc961352099b468a287e846c71c0243d5c2fc285e17
4
+ data.tar.gz: 8b66b63ed93044a9fe019ce5af838f165589a9f7b1eebe0751cc804891dacab2
5
5
  SHA512:
6
- metadata.gz: a7a6790a9354d9c06eedb72b2a6bf1960ed691a53c95b4a11c0ce50359ca397e0929240b2eafc93365610f43588c190515367462c4cde3ccf58242d5afd31622
7
- data.tar.gz: 6270491bbc12302365de92b666b438b3638baa67d162f01e0b825deef73544f349919b779d6f4ea3db4dc3e570b3d27ede88e108667745b811596c9214fd205f
6
+ metadata.gz: 79a410fe6b307969a27cafed38cd145951016c86c45f62033b91dd6b9df289993f4e134c42bd6ddabbb8b4a523534fdad18ea4b71cd40aa6656375c750c4aaf6
7
+ data.tar.gz: baf5eb4583afe8263f54cede96ad308f1b0ce507987b10adfba337eb899ecc456f22c9895cb18805a87ef486ba3712f150af17ca21beed5160081b3eb4c07ffe
@@ -15,6 +15,12 @@ module Imap::Backup
15
15
  config = load_config(**options)
16
16
  each_connection(config, emails) do |connection|
17
17
  connection.run_backup(refresh: refresh)
18
+ rescue StandardError => e
19
+ message =
20
+ "Backup for account '#{connection.account.username}' " \
21
+ "failed with error #{e}"
22
+ Logger.logger.warn message
23
+ next
18
24
  end
19
25
  end
20
26
 
@@ -54,8 +54,8 @@ module Imap::Backup
54
54
  aliases: ["-r"]
55
55
  )
56
56
  def backup
57
- Imap::Backup::Logger.setup_logging options
58
- Backup.new(options).run
57
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
58
+ Backup.new(non_logging_options).run
59
59
  end
60
60
 
61
61
  desc "local SUBCOMMAND [OPTIONS]", "View local info"
@@ -111,8 +111,8 @@ module Imap::Backup
111
111
  aliases: ["-s"]
112
112
  )
113
113
  def migrate(source_email, destination_email)
114
- Imap::Backup::Logger.setup_logging options
115
- Migrate.new(source_email, destination_email, **options).run
114
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
115
+ Migrate.new(source_email, destination_email, **non_logging_options).run
116
116
  end
117
117
 
118
118
  desc(
@@ -161,8 +161,8 @@ module Imap::Backup
161
161
  aliases: ["-s"]
162
162
  )
163
163
  def mirror(source_email, destination_email)
164
- Imap::Backup::Logger.setup_logging options
165
- Mirror.new(source_email, destination_email, **options).run
164
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
165
+ Mirror.new(source_email, destination_email, **non_logging_options).run
166
166
  end
167
167
 
168
168
  desc "remote SUBCOMMAND [OPTIONS]", "View info about online accounts"
@@ -178,8 +178,8 @@ module Imap::Backup
178
178
  quiet_option
179
179
  verbose_option
180
180
  def restore(email = nil)
181
- Imap::Backup::Logger.setup_logging options
182
- Restore.new(email, options).run
181
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
182
+ Restore.new(email, non_logging_options).run
183
183
  end
184
184
 
185
185
  desc "setup", "Configure imap-backup"
@@ -191,8 +191,8 @@ module Imap::Backup
191
191
  quiet_option
192
192
  verbose_option
193
193
  def setup
194
- Imap::Backup::Logger.setup_logging options
195
- Setup.new(options).run
194
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
195
+ Setup.new(non_logging_options).run
196
196
  end
197
197
 
198
198
  desc "stats EMAIL [OPTIONS]", "Print stats for each account folder"
@@ -206,8 +206,8 @@ module Imap::Backup
206
206
  quiet_option
207
207
  verbose_option
208
208
  def stats(email)
209
- Imap::Backup::Logger.setup_logging options
210
- Stats.new(email, options).run
209
+ non_logging_options = Imap::Backup::Logger.setup_logging(options)
210
+ Stats.new(email, non_logging_options).run
211
211
  end
212
212
 
213
213
  desc "utils SUBCOMMAND [OPTIONS]", "Various utilities"
@@ -13,11 +13,14 @@ module Imap::Backup
13
13
  end
14
14
 
15
15
  def self.setup_logging(options = {})
16
+ copy = options.clone
17
+ quiet = copy.delete(:quiet)
18
+ verbose = copy.delete(:verbose)
16
19
  level =
17
20
  case
18
- when options[:quiet]
21
+ when quiet
19
22
  ::Logger::Severity::UNKNOWN
20
- when options[:verbose]
23
+ when verbose
21
24
  ::Logger::Severity::DEBUG
22
25
  else
23
26
  ::Logger::Severity::INFO
@@ -25,6 +28,8 @@ module Imap::Backup
25
28
  logger.level = level
26
29
  debug = level == ::Logger::Severity::DEBUG
27
30
  Net::IMAP.debug = debug
31
+
32
+ copy
28
33
  end
29
34
 
30
35
  def self.sanitize_stderr
@@ -2,8 +2,8 @@ module Imap; end
2
2
 
3
3
  module Imap::Backup
4
4
  MAJOR = 9
5
- MINOR = 0
6
- REVISION = 2
5
+ MINOR = 1
6
+ REVISION = 1
7
7
  PRE = nil
8
8
  VERSION = [MAJOR, MINOR, REVISION, PRE].compact.map(&:to_s).join(".")
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.2
4
+ version: 9.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-11 00:00:00.000000000 Z
11
+ date: 2023-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -217,11 +217,8 @@ files:
217
217
  - LICENSE
218
218
  - README.md
219
219
  - bin/imap-backup
220
- - docs/configuration.md
221
220
  - docs/delimiters-and-prefixes.md
222
221
  - docs/development.md
223
- - docs/restore.md
224
- - docs/setup.md
225
222
  - imap-backup.gemspec
226
223
  - lib/cli_coverage.rb
227
224
  - lib/email/mboxrd/message.rb
@@ -1,25 +0,0 @@
1
- Configuration is stored in a JSON file.
2
-
3
- The format is documented [here](files/config.md).
4
-
5
- # Folders
6
-
7
- By default, all folders are backed-up. You can override this by choosing
8
- specific folders.
9
-
10
- # Connection options
11
-
12
- You can override the parameters passed to `Net::IMAP` with `connection_options`.
13
-
14
- See the Ruby Standard Library documentation for `Net::IMAP` of details of [supported parameters](https://ruby-doc.org/stdlib-3.1.2/libdoc/net-imap/rdoc/Net/IMAP.html#method-c-new).
15
-
16
- Specifically, if you are using a self-signed certificate and get SSL errors, e.g.
17
- `certificate verify failed`, you can choose to not verify the TLS connection.
18
-
19
- Connection options can be entered via `imap-backup setup` as JSON.
20
-
21
- Choose the account, then 'modify connection options'.
22
-
23
- For example:
24
-
25
- ![Entering connection options as JSON](./images/entering-connection-options-as-json.png "Entering connection options as JSON")
data/docs/restore.md DELETED
@@ -1,28 +0,0 @@
1
- # FAQ
2
-
3
- # How does restore work?
4
-
5
- Backed-up emails are pushed to the IMAP server.
6
- If there are clashes, folders are renamed.
7
-
8
- # What are all these 'INBOX.12345' files?
9
-
10
- If, when the backup is launched, the IMAP server contains a folder with
11
- the same name, but different history to the local backup, the local
12
- emails cannot simply be added to the existing folder.
13
-
14
- In this case, a numeric suffix is added to the **local** folder,
15
- before it is restored.
16
-
17
- In this way, old and new emails are kept separate.
18
-
19
- # Will my email get overwritten?
20
-
21
- No.
22
-
23
- Emails are identified by folder and a specific email id. Any email that
24
- is already on the server is skipped.
25
-
26
- ## How do I restore to a different service?
27
-
28
- It is best to use the `migrate` command in this case.
data/docs/setup.md DELETED
@@ -1,5 +0,0 @@
1
- # HOWTOs
2
-
3
- ## Set the server for a Google Apps account
4
-
5
- Use `imap.gmail.com` as the 'server' setting.