require "thor" require "rainbow" module Tlapse::CLI class Alpha < Thor desc "serve", "Start a drb server via which photo capturing may be performed remotely" option :host, desc: "The hostname on which the server is run", type: :string, default: "localhost", aliases: %i(H) option :port, desc: "The port on which the server is run", type: :numeric, default: 9000, aliases: %i(p) def serve server = Tlapse::Server.new( host: options[:host], port: options[:port] ) puts "Serving on #{server.full_host}" server.serve end desc "compile", "Use ffmpeg to combine all .jpg files in the current directory" option :force, desc: "Force overwrite any existing output files", type: :boolean, default: false, aliases: %i(f) option :out, desc: "The desired output filename", type: :string, default: "out.mkv", aliases: %i(o) def compile video = Tlapse::Video.new out: options[:out] if video.outfile_exists? if options[:force] FileUtils.rm video.outfile puts "Removed file #{video.outfile}" else Tlapse::Logger.error! "#{video.outfile} exists. Use -f to overwrite or " \ "-o to specify a different output file." end end video.create! end desc "organize", "Cannonically organize pictures in the current directory" option :dry_run, desc: "Print out what would change without actually changing anything", type: :boolean, default: false def organize Tlapse::Util.organize! dry_run: options[:dry_run] end end end