#!/usr/bin/env ruby require 'fotos' require 'optparse' COMMANDS = %w(extract organize build) parser = OptionParser.new case ARGV[0] when 'extract' parser.on('-z PATH', '--zip', 'Extract a zip file with images from PATH') parser.on('-d [PATH]', '--dest', 'Copy to a destinatio dir') options = {dest: '.'} parser.parse!(into: options) Fotos::ZipExtractor.new(options).call when 'organize' options = {} parser.on('-s [PATH]', '--source', 'Input directory with image directories') parser.on('-d [PATH]', '--destination', 'Copy to a destinatio dir') parser.parse!(into: options) Fotos::Organizer.new(options).call when 'build' parser.on('-s [PATH]', '--source', 'Input directory with image directories') parser.on('-d [PATH]', '--dest', 'Output directory for html and images') parser.on('-t', '--thumbnails', 'Automatically generate missing thumbnails') options = {dest: '.'} parser.parse!(into: options) Fotos::HtmlGenerator.new(options).call else puts "Unknown command! Available commands: #{COMMANDS.join(',')}." exit(-1) end