Browse Source

Fix `tootctl media remove-orphans` choking on unknown files in storage (#13765)

Fix #13762

Catch tootctl interrupt to prevent confusing stacktrace
master
Eugen Rochko 12 months ago
committed by GitHub
parent
commit
199bbbcb9f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      bin/tootctl
  2. 17
      lib/mastodon/media_cli.rb

8
bin/tootctl

@ -1,5 +1,11 @@
#!/usr/bin/env ruby
APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require_relative '../lib/cli'
Mastodon::CLI.start(ARGV)
begin
Mastodon::CLI.start(ARGV)
rescue Interrupt
exit(130)
end

17
lib/mastodon/media_cli.rb

@ -88,6 +88,11 @@ module Mastodon
path_segments = object.key.split('/')
path_segments.delete('cache')
if path_segments.size != 7
progress.log(pastel.yellow("Unrecognized file found: #{object.key}"))
next
end
model_name = path_segments.first.classify
attachment_name = path_segments[1].singularize
record_id = path_segments[2..-2].join.to_i
@ -127,6 +132,11 @@ module Mastodon
path_segments = key.split(File::SEPARATOR)
path_segments.delete('cache')
if path_segments.size != 7
progress.log(pastel.yellow("Unrecognized file found: #{key}"))
next
end
model_name = path_segments.first.classify
record_id = path_segments[2..-2].join.to_i
attachment_name = path_segments[1].singularize
@ -246,6 +256,11 @@ module Mastodon
path_segments = path.split('/')[2..-1]
path_segments.delete('cache')
if path_segments.size != 7
say('Not a media URL', :red)
exit(1)
end
model_name = path_segments.first.classify
record_id = path_segments[2..-2].join.to_i
@ -294,6 +309,8 @@ module Mastodon
segments = object.key.split('/')
segments.delete('cache')
next if segments.size != 7
model_name = segments.first.classify
record_id = segments[2..-2].join.to_i

Loading…
Cancel
Save