muflax65ngodyewp.onion/commands/images.rb

34 lines
993 B
Ruby

require 'image_size'
usage 'images'
summary 'prepares images'
description 'Prepares images for uploads, i.e. strips them of metadata, compresses them and so on.'
required :s, :sites, 'sites'
module Nanoc::CLI::Commands
class Images < ::Nanoc::CLI::CommandRunner
def run
sites_arg(options[:sites]).each do |site|
img_dir = "content_#{site}/pigs"
exts = "{" + %w{jpg png gif}.join(",") + "}"
# resize all large images
Dir["#{img_dir}/*.#{exts}"].select {|f| ImageSize.new(IO.read(f)).width > 400}.map do |img|
small_img = img.gsub /^(.+)\.(\w+)$/, '\1_small.\2'
next if File.exists? small_img and File.mtime(small_img) >= File.mtime(img)
puts "resizing #{img}..."
system "convert -resize '400' #{img} #{small_img}"
end
# strip exif
system "exiftool -all= -overwrite_original #{img_dir}/*.#{exts}"
end
end
end
end
runner Nanoc::CLI::Commands::Images