require 'commander' require 'fastlane/version' HighLine.track_eof = false module Frameit class CommandsGenerator include Commander::Methods def self.start FastlaneCore::UpdateChecker.start_looking_for_update('frameit') Frameit::DependencyChecker.check_dependencies self.new.run ensure FastlaneCore::UpdateChecker.show_update_status('frameit', Frameit::VERSION) end def run program :name, 'frameit' program :version, Frameit::VERSION program :description, 'Quickly put your screenshots into the right device frames' program :help, 'Author', 'Felix Krause <frameit@krausefx.com>' program :help, 'Website', 'https://fastlane.tools' program :help, 'GitHub', 'https://github.com/fastlane/frameit' program :help_formatter, :compact global_option('--verbose') { $verbose = true } FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options) default_command :run command :run do |c| c.syntax = 'frameit black' c.description = "Adds a black frame around all screenshots" c.action do |args, options| load_config(options) Frameit::Runner.new.run('.', nil) end end command :silver do |c| c.syntax = 'frameit silver' c.description = "Adds a silver frame around all screenshots" c.action do |args, options| load_config(options) Frameit::Runner.new.run('.', Frameit::Color::SILVER) end end command :gold do |c| c.syntax = 'frameit gold' c.description = "Adds a gold frame around all screenshots" c.action do |args, options| load_config(options) Frameit::Runner.new.run('.', Frameit::Color::GOLD) end end command :rose_gold do |c| c.syntax = 'frameit rose_gold' c.description = "Adds a rose gold frame around all screenshots" c.action do |args, options| load_config(options) Frameit::Runner.new.run('.', Frameit::Color::ROSE_GOLD) end end command :setup do |c| c.syntax = 'frameit setup' c.description = "Downloads and sets up the latest device frames" c.action do |args, options| Frameit::FrameDownloader.new.download_frames end end command :download_frames do |c| c.syntax = 'frameit download_frames' c.description = "Downloads and sets up the latest device frames" c.action do |args, options| Frameit::FrameDownloader.new.download_frames end end alias_command :white, :silver run! end private def load_config(options) o = options.__hash__.dup o.delete(:verbose) Frameit.config = FastlaneCore::Configuration.create(Frameit::Options.available_options, o) end end end