Class: Imap::Backup::CLI
- Inherits:
-
Thor
- Object
- Thor
- Imap::Backup::CLI
show all
- Includes:
- Helpers
- Defined in:
- lib/imap/backup/cli.rb
Defined Under Namespace
Modules: Helpers
Classes: Backup, FolderEnumerator, Local, Migrate, Mirror, Remote, Restore, Setup, Stats, Utils
Constant Summary
collapse
- VERSION_ARGUMENTS =
%w(-v --version).freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
#account, #connection, #each_connection, included, #load_config, #options
Class Method Details
.accounts_option ⇒ Object
52
53
54
55
56
57
58
59
|
# File 'lib/imap/backup/cli.rb', line 52
def self.accounts_option
method_option(
"accounts",
type: :string,
desc: "a comma-separated list of accounts (defaults to all configured accounts)",
aliases: ["-a"]
)
end
|
.exit_on_failure? ⇒ Boolean
48
49
50
|
# File 'lib/imap/backup/cli.rb', line 48
def self.exit_on_failure?
true
end
|
.start(*args) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/imap/backup/cli.rb', line 27
def self.start(*args)
version_argument = ARGV & VERSION_ARGUMENTS
if version_argument.any?
new.version
exit 0
end
first_argument_is_help = ARGV[0] == "help"
second_argument_is_subcommand = subcommands.include?(ARGV[1])
if first_argument_is_help && second_argument_is_subcommand
help, subcommand = ARGV.shift(2)
ARGV.unshift(subcommand, help)
end
super
end
|
Instance Method Details
#backup ⇒ Object
79
80
81
82
|
# File 'lib/imap/backup/cli.rb', line 79
def backup
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Backup.new(non_logging_options).run
end
|
#migrate(source_email, destination_email) ⇒ Object
136
137
138
139
|
# File 'lib/imap/backup/cli.rb', line 136
def migrate(source_email, destination_email)
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Migrate.new(source_email, destination_email, **non_logging_options).run
end
|
#mirror(source_email, destination_email) ⇒ Object
186
187
188
189
|
# File 'lib/imap/backup/cli.rb', line 186
def mirror(source_email, destination_email)
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Mirror.new(source_email, destination_email, **non_logging_options).run
end
|
#restore(email = nil) ⇒ Object
203
204
205
206
|
# File 'lib/imap/backup/cli.rb', line 203
def restore(email = nil)
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Restore.new(email, non_logging_options).run
end
|
#setup ⇒ Object
216
217
218
219
|
# File 'lib/imap/backup/cli.rb', line 216
def setup
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Setup.new(non_logging_options).run
end
|
#stats(email) ⇒ Object
231
232
233
234
|
# File 'lib/imap/backup/cli.rb', line 231
def stats(email)
non_logging_options = Imap::Backup::Logger.setup_logging(options)
Stats.new(email, non_logging_options).run
end
|
#version ⇒ Object
240
241
242
|
# File 'lib/imap/backup/cli.rb', line 240
def version
Kernel.puts "imap-backup #{Imap::Backup::VERSION}"
end
|