32 lines
968 B
Ruby
32 lines
968 B
Ruby
# typed: false
|
|
# frozen_string_literal: true
|
|
T.bind(self, T.all(Rake::DSL, Object))
|
|
|
|
require "find"
|
|
|
|
namespace :blob_file do
|
|
desc "migrate blob entries to blob files"
|
|
task migrate_blob_entries: %i[environment] do
|
|
batch_size = ENV["batch_size"]&.to_i || 1000
|
|
start_at = ENV["start_at"] || Tasks::BlobFileMigrationTask::ZERO_SHA256
|
|
|
|
Tasks::BlobFileMigrationTask.new.run(batch_size:, start_sha256: start_at)
|
|
end
|
|
|
|
task verify_fs_files: :environment do
|
|
dir = Rails.application.config_for("blob_file_location")
|
|
num_verified = 0
|
|
Find.find(dir) do |path|
|
|
next if File.directory?(path)
|
|
expected_sha256 = File.basename(path)
|
|
actual_sha256 = Digest::SHA256.file(path).hexdigest
|
|
if expected_sha256 != actual_sha256
|
|
puts "file #{path} has mismatching sha256: #{expected_sha256} != #{actual_sha256}"
|
|
end
|
|
num_verified += 1
|
|
end
|
|
|
|
puts "(#{Rails.env}, #{dir}) verified #{num_verified} files"
|
|
end
|
|
end
|