imap-backup 7.0.2 → 8.0.0

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.
@@ -11,6 +11,12 @@ module Imap::Backup
11
11
  end
12
12
  self.highline = HighLine.new
13
13
 
14
+ attr_accessor :config
15
+
16
+ def initialize(config:)
17
+ @config = config
18
+ end
19
+
14
20
  def run
15
21
  catch :done do
16
22
  loop do
@@ -62,10 +68,6 @@ module Imap::Backup
62
68
  end
63
69
  end
64
70
 
65
- def config
66
- @config ||= Configuration.new
67
- end
68
-
69
71
  def default_account_config(username)
70
72
  Imap::Backup::Account.new(
71
73
  username: username,
@@ -1,9 +1,9 @@
1
1
  module Imap; end
2
2
 
3
3
  module Imap::Backup
4
- MAJOR = 7
4
+ MAJOR = 8
5
5
  MINOR = 0
6
- REVISION = 2
6
+ REVISION = 0
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: 7.0.2
4
+ version: 8.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-17 00:00:00.000000000 Z
11
+ date: 2022-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -239,9 +239,7 @@ files:
239
239
  - lib/imap/backup/account/connection/folder_names.rb
240
240
  - lib/imap/backup/account/folder.rb
241
241
  - lib/imap/backup/cli.rb
242
- - lib/imap/backup/cli/accounts.rb
243
242
  - lib/imap/backup/cli/backup.rb
244
- - lib/imap/backup/cli/folders.rb
245
243
  - lib/imap/backup/cli/helpers.rb
246
244
  - lib/imap/backup/cli/local.rb
247
245
  - lib/imap/backup/cli/migrate.rb
@@ -250,7 +248,6 @@ files:
250
248
  - lib/imap/backup/cli/restore.rb
251
249
  - lib/imap/backup/cli/setup.rb
252
250
  - lib/imap/backup/cli/stats.rb
253
- - lib/imap/backup/cli/status.rb
254
251
  - lib/imap/backup/cli/utils.rb
255
252
  - lib/imap/backup/client/apple_mail.rb
256
253
  - lib/imap/backup/client/default.rb
@@ -1,43 +0,0 @@
1
- module Imap::Backup
2
- class CLI; end
3
-
4
- class CLI::Accounts
5
- include Enumerable
6
-
7
- attr_reader :required_accounts
8
-
9
- def initialize(required_accounts = [])
10
- @required_accounts = required_accounts
11
- end
12
-
13
- def each(&block)
14
- return enum_for(:each) if !block
15
-
16
- accounts.each(&block)
17
- end
18
-
19
- private
20
-
21
- def accounts
22
- @accounts ||=
23
- if required_accounts.empty?
24
- config.accounts
25
- else
26
- config.accounts.select do |account|
27
- required_accounts.include?(account.username)
28
- end
29
- end
30
- end
31
-
32
- def config
33
- @config ||= begin
34
- exists = Configuration.exist?
35
- if !exists
36
- path = Configuration.default_pathname
37
- raise ConfigurationNotFound, "Configuration file '#{path}' not found"
38
- end
39
- Configuration.new
40
- end
41
- end
42
- end
43
- end
@@ -1,29 +0,0 @@
1
- module Imap::Backup
2
- class CLI::Folders < Thor
3
- include Thor::Actions
4
- include CLI::Helpers
5
-
6
- attr_reader :account_names
7
-
8
- def initialize(options)
9
- super([])
10
- @account_names = (options[:accounts] || "").split(",")
11
- end
12
-
13
- no_commands do
14
- def run
15
- each_connection(account_names) do |connection|
16
- Kernel.puts connection.account.username
17
- # TODO: Make folder_names private once this command
18
- # has been removed.
19
- folders = connection.folder_names
20
- if folders.nil?
21
- Kernel.warn "Unable to list account folders"
22
- return false
23
- end
24
- folders.each { |f| Kernel.puts "\t#{f}" }
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,26 +0,0 @@
1
- module Imap::Backup
2
- class CLI::Status < Thor
3
- include Thor::Actions
4
- include CLI::Helpers
5
-
6
- attr_reader :account_names
7
-
8
- def initialize(options)
9
- super([])
10
- @account_names = (options[:accounts] || "").split(",")
11
- end
12
-
13
- no_commands do
14
- def run
15
- each_connection(account_names) do |connection|
16
- Kernel.puts connection.account.username
17
- folders = connection.status
18
- folders.each do |f|
19
- missing_locally = f[:remote] - f[:local]
20
- Kernel.puts "#{f[:name]}: #{missing_locally.size}"
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end