~cytrogen/masto-fe

937dc42f101be905e3af41b879901a4445b0223a — Matt Jankowski 2 years ago 56c0bab
Extract methods for file movement in `CLI::Upgrade` (#25120)

2 files changed, 25 insertions(+), 23 deletions(-)

M .rubocop.yml
M lib/mastodon/cli/upgrade.rb
M .rubocop.yml => .rubocop.yml +0 -6
@@ 75,12 75,6 @@ Metrics/AbcSize:
    - 'lib/mastodon/cli/*.rb'
    - db/*migrate/**/*

# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting
Metrics/BlockNesting:
  Exclude:
    - 'lib/mastodon/cli/*.rb'

# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:

M lib/mastodon/cli/upgrade.rb => lib/mastodon/cli/upgrade.rb +25 -17
@@ 125,27 125,12 @@ module Mastodon::CLI
        progress.log("Moving #{previous_path} to #{upgraded_path}") if options[:verbose]

        begin
          unless dry_run?
            FileUtils.mkdir_p(File.dirname(upgraded_path))
            FileUtils.mv(previous_path, upgraded_path)

            begin
              FileUtils.rmdir(File.dirname(previous_path), parents: true)
            rescue Errno::ENOTEMPTY
              # OK
            end
          end
          move_previous_to_upgraded
        rescue => e
          progress.log(pastel.red("Error processing #{previous_path}: #{e}"))
          success = false

          unless dry_run?
            begin
              FileUtils.rmdir(File.dirname(upgraded_path), parents: true)
            rescue Errno::ENOTEMPTY
              # OK
            end
          end
          remove_directory
        end
      end



@@ 155,5 140,28 @@ module Mastodon::CLI
      attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
      success
    end

    def move_previous_to_upgraded(previous_path, upgraded_path)
      return if dry_run?

      FileUtils.mkdir_p(File.dirname(upgraded_path))
      FileUtils.mv(previous_path, upgraded_path)

      begin
        FileUtils.rmdir(File.dirname(previous_path), parents: true)
      rescue Errno::ENOTEMPTY
        # OK
      end
    end

    def remove_directory(path)
      return if dry_run?

      begin
        FileUtils.rmdir(File.dirname(path), parents: true)
      rescue Errno::ENOTEMPTY
        # OK
      end
    end
  end
end