Class: Fastlane::OneOff

Inherits:
Object
  • Object
show all
Defined in:
lib/fastlane/one_off.rb

Overview

Call actions without triggering a full lane

Class Method Summary collapse

Class Method Details

.execute(args: nil) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/fastlane/one_off.rb', line 4

def self.execute(args: nil)
  action_parameters = {}
  action_name = nil

  args.each do |current|
    if current.include? ":" # that's a key/value which we want to pass to the lane
      key, value = current.split(":", 2)
      raise "Please pass values like this: key:value" unless key.length > 0
      value = CommandLineHandler.convert_value(value)
      Helper.log.debug "Using #{key}: #{value}".yellow
      action_parameters[key.to_sym] = value
    else
      action_name ||= current
    end
  end

  raise "invalid syntax" unless action_name

  class_name = action_name.fastlane_class + 'Action'
  class_ref = nil
  begin
    class_ref = Fastlane::Actions.const_get(class_name)
  rescue NameError
    raise "Action not found"
  end

  r = Runner.new
  r.execute_action(action_name, class_ref, [action_parameters], custom_dir: '.')
end