class Frameit::CommandsGenerator

Public Class Methods

start() click to toggle source
# File frameit/lib/frameit/commands_generator.rb, line 19
def self.start
  Frameit::DependencyChecker.check_dependencies
  self.new.run
end

Public Instance Methods

run() click to toggle source
# File frameit/lib/frameit/commands_generator.rb, line 24
def run
  program :name, 'frameit'
  program :version, Fastlane::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, 'Documentation', 'https://docs.fastlane.tools/actions/frameit/'
  program :help_formatter, FastlaneCore::HelpFormatter

  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
  global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')

  default_command(:run)

  command :run do |c|
    c.syntax = 'fastlane frameit black'
    c.description = "Adds a black frame around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', nil)
    end
  end

  command :silver do |c|
    c.syntax = 'fastlane frameit silver'
    c.description = "Adds a silver frame around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', Frameit::Color::SILVER)
    end
  end

  command :gold do |c|
    c.syntax = 'fastlane frameit gold'
    c.description = "Adds a gold frame around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', Frameit::Color::GOLD)
    end
  end

  command :rose_gold do |c|
    c.syntax = 'fastlane frameit rose_gold'
    c.description = "Adds a rose gold frame around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', Frameit::Color::ROSE_GOLD)
    end
  end

  command :android do |c|
    c.syntax = 'fastlane frameit android'
    c.description = "Adds Android frames around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', nil, Platform::ANDROID)
    end
  end

  command :ios do |c|
    c.syntax = 'fastlane frameit ios'
    c.description = "Adds iOS frames around all screenshots"

    FastlaneCore::CommanderGenerator.new.generate(Frameit::Options.available_options, command: c)

    c.action do |args, options|
      load_config(options)
      Frameit::Runner.new.run('.', nil, Platform::IOS)
    end
  end

  command :setup do |c|
    c.syntax = 'fastlane 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 = 'fastlane 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 Instance Methods

load_config(options) click to toggle source
# File frameit/lib/frameit/commands_generator.rb, line 135
def load_config(options)
  o = options.__hash__.dup
  o.delete(:verbose)
  Frameit.config = FastlaneCore::Configuration.create(Frameit::Options.available_options, o)
end