# typed: false # frozen_string_literal: true T.bind(self, T.all(Rake::DSL, Object)) require "find" namespace :blob_file do 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 # desc "Migrate remaining blob entries" # task migrate_remaining_blob_entries: :environment do # sha256s = %w[ # 07fa02e3997c946102d0ad22ca43f55fa6a0345151359eddd36c30ef60bb1540 # 0a33463190a69f2e060c0efe8b75edb705b5f79001067addd59d30a519ebb94a # 0c676b1e0187dc490d9d0122cb176d626c6d26601bcb98ad68ac16ea0a16bfd1 # 0d8d60ad95f514de9969b92a7d390d6eea8e074e5ffb0142b0f9e0211abb10eb # 0da2068b44cadd7d535cda3857d03cad209cb630bf6f8745f52c065e5e97da87 # 0f75a78ede2e4b46c0e49c5c3bbc8e0f9870e33dc6863f070dcb355d1879ef4b # 14be857666df4f274619605a39070b7813f41af701c33535632d62c618170f10 # 1a44fee2d07b7e895f9f6d322a86de579adb62db539223483936807bc13b9233 # 1b58fef9ba49fec9e016072bae4411c08c67ac615c5471e5cb2576dfda736b11 # 1c2d01d8287e1edf6f361324922de208652a4c0678296e2fabe8400ec2e11c17 # 1c66b43d90e2c678a2d78b04fca731a0491735c04b750fd96d4dce03cac69154 # 2aa4609383a75b4b063a2c21aa398954a15f51a67a5f629b700c180bd3b191f4 # 2c2a80854ad33ac3746c872603c098fdd3603ab5204e0e551c69857c0365a3c7 # 2dfddc505b4da5a88e4a82d9c67bab60b7965844656edbd3f8c889a3b076c201 # 325753454de13d1edc3641c3796c8368b3a9320115d0d40f4a3603d45594e004 # 355f35fa61217d457c93fdea4fbe361072af63e15613c8a595208913e09078fa # 3f2eb002219b9e5665f02b4ff96585b517bddb55cf28fca15df2bd017385bd71 # 3f454c7d9aad7a2690eef76c143ec1297842c6cb784d7432b0ef95c97ae733f3 # 4208ae533155713dc32d1e8a1400ae319b3ee7cbbb1ca018487250025fdd4756 # 4471934c1c72f6347e07a0612ac43159f203006447feedb2a425c263fa88fabb # 4ebd1243342b5ea733ca42c4cd6c5b265291c6eca0055ec8898083594fb92113 # 5711179b76168e448d4382cb463259b871f174eb4efb4558f5afbf31dbcf1d50 # 591d9e3afeeb5dac799a18400314049e218478bc1ffc770e669078221792652e # 593451c9fae341c84848f966485324652eadd0ef24f97fdbc3f15597570aa0a5 # 5b4d6da7144136746efc5fa56c3c20ea291591d67119347d5322d180b8003f3d # 5d7e4114ad10b8a4e2259be01a8453dd310ea672056c646a1e5c8e99ce59eb50 # 5d97d6da021bf80601706f7545948964cd3a12d3dd62f8cb9e9097f45168ca8e # 5dd6d4c961ad2b128b2f6146c7a15d6a2d91dd75d49570e8f7abce358838e500 # cb42f987805c8b2a6fb6e89e8b48fc686812ee922426bb5f45ee9a0bce80ad11 # cb42f9a0371131629e8fd843e025d2cc8e113da02615442697c6af63a07cd932 # cb42f9c0de416ac4affef18668ceb0995a676aa8282bd722f3a2d860aff45d68 # cb42f9dcd71c5b72e1026547cd02d0e6d1b46b4270d7148c0a5c0d4437940a7b # cb42f9e3342302e8d13349f624749942042ed7478e2db5900989c2805b84fbce # cb42fa3e6a21220ffc5bb54ceea9ac2d6488672d9bee20dec4371b5a389a9266 # cb42faad2eb0d92eb4ee7da5f7f509dfdc53d1428917999207d918b23d02953a # cb42fb81e894febfabc593c92f7a739d776520752401aa81837ece9a7cb16b35 # cb42fb90f37dbbed886820857b0d8401ba2b98523e80af0fce0afb4944b5904a # cb42fbbd457c5c9fda3d89c2a9919ef7995d665a7dd3a4a8b515abdeb81ff27e # cb42fc1d13ba232c984193928c23ebb5233a7af66746421b4ee49cf45d607812 # cb42fc23f103a5b155267f91513b1e6660811696c0dbf375b363dd23e9f080ba # cb42fc823641440acacca735d217a5b0c67b97bae400cc0d536e5142eec4d198 # cb42fc9794fea6fb6d274f3022fb494d0c1da308b21ca49329279dde6453758f # cb42fd19e366b5c9c52dfd7d28709584a27ad1f6db106ae3add830634b39840b # cb42fd473013630ee59c439d28d5fd993a2fd98987eebf962f97793593d880a2 # cb42fd513c249cb3cbd96678b4beb2f1a409ce14302ed46730eb65d0d2223069 # cb42fd9b2dfe028a85a575fa40c8b1e5f2210841411daa02225fc3f345b89d2c # ] # sha256s.each do |sha256| # blob_file = BlobFile.migrate_sha256!(sha256) # if blob_file.persisted? # puts "migrated #{sha256}" # else # puts "failed to migrate #{sha256}" # end # end # end end