joeyates / imap-backup

Backup and Migrate IMAP Email Accounts
MIT License
1.33k stars 74 forks source link

undefined method `username' when running "folders" command #111

Closed slhck closed 2 years ago

slhck commented 2 years ago

I am running into an error with the folders subcommand:

/home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/folders.rb:16:in `block in run': undefined method `username' for #<Imap::Backup::Account::Connection:0x0000560af88dd9f8 @account=#<Imap::Backup::Account:0x0000560af88ddb10 @username="<redacted>", @password="<redacted>", @local_path="/home/werner/.imap-backup/<redacted>", @folders=[{:name=>"INBOX"}], @server="imap.gmail.com", @connection_options=nil, @changes={}, @marked_for_deletion=false>, @backup_folders=nil, @client=nil, @config=nil, @folder_names=nil, @provider=nil, @server=nil> (NoMethodError)
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/helpers.rb:27:in `block in each_connection'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/accounts.rb:16:in `each'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/accounts.rb:16:in `each'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/helpers.rb:26:in `each_connection'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli/folders.rb:15:in `run'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/cli.rb:57:in `folders'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/bin/imap-backup:10:in `block in <top (required)>'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/lib/imap/backup/logger.rb:29:in `sanitize_stderr'
    from /home/werner/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/imap-backup-4.2.0/bin/imap-backup:9:in `<top (required)>'
    from /home/werner/.rbenv/versions/3.0.1/bin/imap-backup:23:in `load'
    from /home/werner/.rbenv/versions/3.0.1/bin/imap-backup:23:in `<main>'

This is using Ruby 3.0.1 via rbenv under Ubuntu 20.04.

My config looks like this:

{
  "version": "2.0",
  "accounts": [
    {
      "username": "<redacted>",
      "password": "<redacted>",
      "local_path": "/home/werner/.imap-backup/<redacted>",
      "folders": [
        {
          "name": "INBOX"
        }
      ],
      "server": "imap.gmail.com"
    }
  ],
  "debug": true
}

This is a bit weird since Account definitely has attr_reader for the attribute set.

joeyates commented 2 years ago

Hi @slhck, thanks for opening the issue.

I've fixed the problem and released version 4.2.1

This slipped through the net of the recent rewrite of account handling :(

slhck commented 2 years ago

I see you added a spec now too :) Thanks for the quick fix!