Module: Imap::Backup::CLI::Helpers
- Included in:
- Imap::Backup::CLI, Backup, Local, Local::Check, Migrate, Mirror, Remote, Restore, Setup, Single, Stats, Transfer, Utils
- Defined in:
- lib/imap/backup/cli/helpers.rb
Overview
Provides helper methods for CLI classes
Constant Summary collapse
- NAMESPACE_CONFIGURATION_DESCRIPTION =
Returns a description of the namespace configuration.
<<~DESC.freeze Some IMAP servers use namespaces (i.e. prefixes like "INBOX"), while others, while others concatenate the names of subfolders with a charater ("delimiter") other than "/". In these cases there are two choices. You can use the `--automatic-namespaces` option. This will query the source and detination servers for their namespace configuration and will adapt paths accordingly. This option requires that both the source and destination servers are available and work with the provided parameters and authentication. If automatic configuration does not work as desired, there are the `--source-prefix=`, `--source-delimiter=`, `--destination-prefix=` and `--destination-delimiter=` parameters. To check what values you should use, check the output of the `imap-backup remote namespaces EMAIL` command. DESC
Class Method Summary collapse
Instance Method Summary collapse
-
#account(config, email) ⇒ Account
The Account information for the email address.
-
#load_config(**options) ⇒ Configuration
Loads the application configuration.
-
#options ⇒ Hash
Processes command-line parameters.
-
#requested_accounts(config) ⇒ Array<Account>
If email addresses have been specified returns the Account configurations for them.
Class Method Details
Instance Method Details
#account(config, email) ⇒ Account
Returns the Account information for the email address.
79 80 81 82 83 84 |
# File 'lib/imap/backup/cli/helpers.rb', line 79 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) ⇒ Configuration
Loads the application configuration
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/imap/backup/cli/helpers.rb', line 64 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 ⇒ Hash
Processes command-line parameters
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/imap/backup/cli/helpers.rb', line 45 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) ⇒ Array<Account>
If email addresses have been specified returns the Account configurations for them. If non have been specified, returns all account configurations
89 90 91 92 93 94 95 96 |
# File 'lib/imap/backup/cli/helpers.rb', line 89 def requested_accounts(config) emails = ([:accounts] || "").split(",") if emails.any? config.accounts.filter { |a| emails.include?(a.username) } else config.accounts end end |