Sha256: 04e85c4b828ed4a1872b89293bf49db2be7f7db9c71e4331012566af60cfe8d0

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

#!/usr/bin/env ruby

require 'rubygems'
require 'exifr'
require 'fileutils'
require 'optparse'

options = {:base => '.'}
opts = OptionParser.new do |opts|
	opts.banner = "Usage: picsort [options] <files>"

	opts.on("-b", "--base BASEDIR", "Base folder (default: current path)") do |v|
		p 'BASE ' + v
		options[:base] = v
	end
	# No argument, shows at tail.  This will print an options summary.
	# Try it and see!
	opts.on_tail("-h", "--help", "Show this message") do
		puts opts
		exit
	end
end.parse!


ARGV.each do |imgfile|
	begin
		date = nil
		begin
			date = EXIFR::JPEG.new(imgfile).date_time 
		rescue
			date = EXIFR::TIFF.new(imgfile).date_time 
		end

		foldername = File.join(options[:base], '%04i_%02i_%02i' % [date.year, date.month, date.day])
		newfilename = File.join(foldername, File.split(imgfile).last)

		if File.expand_path(imgfile) != File.expand_path(newfilename)
			puts '%s -> %s' % [imgfile, newfilename]

			FileUtils.mkdir_p foldername
			FileUtils.mv imgfile, newfilename, :force => true
		end
	rescue RuntimeError
		# ok.. no info available
	rescue
		$stderr.puts $!
	end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tallakt-picsort-0.0.2 bin/picsort
tallakt-picsort-0.0.1 bin/picsort