Module: Imap::Backup::CLI::Helpers
- Included in:
- Imap::Backup::CLI, Backup, Local, Local::Check, Migrate, Mirror, Remote, Restore, Setup, Stats, Utils
- Defined in:
- lib/imap/backup/cli/helpers.rb
Class Method Summary collapse
Instance Method Summary collapse
- #account(config, email) ⇒ Object
- #load_config(**options) ⇒ Object
- #options ⇒ Object
- #requested_accounts(config) ⇒ Object
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/imap/backup/cli/helpers.rb', line 7 def self.included(base) base.class_eval do def self.accounts_option method_option( "accounts", type: :string, desc: "a comma-separated list of accounts (defaults to all configured accounts)", aliases: ["-a"] ) end def self.config_option method_option( "config", type: :string, desc: "supply the configuration file path (default: ~/.imap-backup/config.json)", aliases: ["-c"] ) end def self.format_option method_option( "format", type: :string, desc: "the output type, 'text' for plain text or 'json'", aliases: ["-f"] ) end def self.quiet_option method_option( "quiet", type: :boolean, desc: "silence all output", aliases: ["-q"] ) end def self.verbose_option method_option( "verbose", type: :boolean, desc: "increase the amount of logging", aliases: ["-v"] ) end end end |
Instance Method Details
#account(config, email) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/imap/backup/cli/helpers.rb', line 85 def account(config, email) account = config.accounts.find { |a| a.username == email } raise "#{email} is not a configured account" if !account account end |
#load_config(**options) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/imap/backup/cli/helpers.rb', line 72 def load_config(**) path = [:config] require_exists = .key?(:require_exists) ? [:require_exists] : true if require_exists exists = Configuration.exist?(path: path) if !exists expected = path || Configuration.default_pathname raise ConfigurationNotFound, "Configuration file '#{expected}' not found" end end Configuration.new(path: path) end |
#options ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/imap/backup/cli/helpers.rb', line 56 def @symbolized_options ||= # rubocop:disable Naming/MemoizedInstanceVariableName begin = super() .each.with_object({}) do |(k, v), acc| key = if k.is_a?(String) k.gsub("-", "_").intern else k end acc[key] = v end end end |
#requested_accounts(config) ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/imap/backup/cli/helpers.rb', line 92 def requested_accounts(config) emails = ([:accounts] || "").split(",") if emails.any? config.accounts.filter { |a| emails.include?(a.username) } else config.accounts end end |