Add a utility script for printing image metadata from the command line. Usage: `bin/lsmetadata 1.jpg 2.jpg`
26 lines
848 B
Ruby
Executable File
26 lines
848 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# List metadata for given image and video files in JSON format.
|
|
#
|
|
# Usage:
|
|
#
|
|
# bin/lsmetadata 1.jpg | jq # list file
|
|
# bin/lsmetadata | jq # list all files in current directory
|
|
# bin/lsmetadata images/ | jq # list directory
|
|
# bin/lsmetadata images/**/* | jq # list directory recursively
|
|
#
|
|
# # Run from Docker without having to install Danbooru
|
|
# docker run -rm -it -v $PWD:/mnt ghcr.io/danbooru/danbooru bin/lsmetadata /mnt/images/**/* | jq
|
|
|
|
APP_PATH = File.expand_path('../config/application', __dir__)
|
|
require_relative "../config/environment"
|
|
|
|
files = ARGV
|
|
files = [Dir.pwd] if files.empty?
|
|
files.map! { |file| File.directory?(file) ? Dir[file + "/*"] : file }.flatten!
|
|
files.reject! { |file| File.directory?(file) }
|
|
|
|
files.each do |filename|
|
|
puts MediaFile.open(filename).to_json
|
|
end
|