Module: FastlaneCore::Helper

Defined in:
lib/fastlane_core/helper.rb

Class Method Summary collapse

Class Method Details

.backticks(command, print: true) ⇒ Object

Runs a given command using backticks (‘) and prints them out using the UI.command method



15
16
17
18
19
20
# File 'lib/fastlane_core/helper.rb', line 15

def self.backticks(command, print: true)
  UI.command(command) if print
  result = `#{command}`
  UI.command_output(result) if print
  return result
end

.buildlog_pathObject

Logs base directory



70
71
72
# File 'lib/fastlane_core/helper.rb', line 70

def self.buildlog_path
  return ENV["FL_BUILDLOG_PATH"] || "~/Library/Logs"
end

.ci?boolean

Returns true if building in a known CI environment.

Returns:

  • (boolean)

    true if building in a known CI environment



28
29
30
31
32
33
34
# File 'lib/fastlane_core/helper.rb', line 28

def self.ci?
  # Check for Jenkins, Travis CI, ... environment variables
  ['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CIRCLECI', 'CI', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS'].each do |current|
    return true if ENV.key?(current)
  end
  return false
end

.colors_disabled?Boolean

Do we want to disable the colored output?

Returns:

  • (Boolean)


55
56
57
# File 'lib/fastlane_core/helper.rb', line 55

def self.colors_disabled?
  ENV["FASTLANE_DISABLE_COLORS"]
end

.fastlane_enabled?Boolean

Returns:

  • (Boolean)


138
139
140
141
# File 'lib/fastlane_core/helper.rb', line 138

def self.fastlane_enabled?
  # This is called from the root context on the first start
  @enabled ||= (File.directory?("./fastlane") || File.directory?("./.fastlane"))
end

.gem_path(gem_name) ⇒ Object

DEPRECATED: Use the ‘ROOT` constant from the appropriate tool module instead e.g. File.join(Sigh::ROOT, ’lib’, ‘assets’, ‘resign.sh’)

Path to the installed gem to load resources (e.g. resign.sh)



147
148
149
150
151
152
153
154
155
# File 'lib/fastlane_core/helper.rb', line 147

def self.gem_path(gem_name)
  UI.deprecated('`Helper.gem_path` is deprecated. Use the `ROOT` constant from the appropriate tool module instead.')

  if !Helper.is_test? and Gem::Specification.find_all_by_name(gem_name).any?
    return Gem::Specification.find_by_name(gem_name).gem_dir
  else
    return './'
  end
end

.is_ci?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/fastlane_core/helper.rb', line 46

def self.is_ci?
  ci?
end

.is_mac?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/fastlane_core/helper.rb', line 50

def self.is_mac?
  self.mac?
end

.is_test?Boolean

Use Helper.test? and Helper.ci? instead (legacy calls)

Returns:

  • (Boolean)


42
43
44
# File 'lib/fastlane_core/helper.rb', line 42

def self.is_test?
  self.test?
end

.iterm?Boolean

Does the user use iTerm?

Returns:

  • (Boolean)


65
66
67
# File 'lib/fastlane_core/helper.rb', line 65

def self.iterm?
  !!ENV["ITERM_SESSION_ID"]
end

.itms_pathObject

Returns the full path to the iTMSTransporter executable.

Returns:

  • the full path to the iTMSTransporter executable



124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/fastlane_core/helper.rb', line 124

def self.itms_path
  return ENV["FASTLANE_ITUNES_TRANSPORTER_PATH"] if ENV["FASTLANE_ITUNES_TRANSPORTER_PATH"]
  return '' unless self.is_mac? # so tests work on Linx too

  [
    "../Applications/Application Loader.app/Contents/MacOS/itms",
    "../Applications/Application Loader.app/Contents/itms"
  ].each do |path|
    result = File.expand_path(File.join(self.xcode_path, path))
    return result if File.exist?(result)
  end
  UI.user_error!("Could not find transporter at #{self.xcode_path}. Please make sure you set the correct path to your Xcode installation.")
end

.logObject

This method is deprecated, use the ‘UI` class github.com/fastlane/fastlane/blob/master/fastlane/docs/UI.md



8
9
10
11
# File 'lib/fastlane_core/helper.rb', line 8

def self.log
  UI.deprecated "Helper.log is deprecated. Use `UI` class instead"
  UI.current.log
end

.mac?Boolean

Is the currently running computer a Mac?

Returns:

  • (Boolean)


37
38
39
# File 'lib/fastlane_core/helper.rb', line 37

def self.mac?
  (/darwin/ =~ RUBY_PLATFORM) != nil
end

.mac_stock_terminal?Boolean

Does the user use the Mac stock terminal

Returns:

  • (Boolean)


60
61
62
# File 'lib/fastlane_core/helper.rb', line 60

def self.mac_stock_terminal?
  !!ENV["TERM_PROGRAM_VERSION"]
end

.test?Boolean

Returns true if the currently running program is a unit test.

Returns:

  • (Boolean)

    true if the currently running program is a unit test



23
24
25
# File 'lib/fastlane_core/helper.rb', line 23

def self.test?
  defined? SpecHelper
end

.transporter_java_executable_pathObject



98
99
100
# File 'lib/fastlane_core/helper.rb', line 98

def self.transporter_java_executable_path
  return File.join(self.transporter_java_path, 'bin', 'java')
end

.transporter_java_ext_dirObject



102
103
104
# File 'lib/fastlane_core/helper.rb', line 102

def self.transporter_java_ext_dir
  return File.join(self.transporter_java_path, 'lib', 'ext')
end

.transporter_java_jar_pathObject



106
107
108
# File 'lib/fastlane_core/helper.rb', line 106

def self.transporter_java_jar_path
  return File.join(self.itms_path, 'lib', 'itmstransporter-launcher.jar')
end

.transporter_java_pathObject



114
115
116
# File 'lib/fastlane_core/helper.rb', line 114

def self.transporter_java_path
  return File.join(self.itms_path, 'java')
end

.transporter_pathObject

Returns the full path to the iTMSTransporter executable.

Returns:

  • the full path to the iTMSTransporter executable



119
120
121
# File 'lib/fastlane_core/helper.rb', line 119

def self.transporter_path
  return File.join(self.itms_path, 'bin', 'iTMSTransporter')
end

.transporter_user_dirObject



110
111
112
# File 'lib/fastlane_core/helper.rb', line 110

def self.transporter_user_dir
  return File.join(self.itms_path, 'bin')
end

.xcode_pathObject

Returns the full path to the Xcode developer tools of the currently running system.

Returns:

  • the full path to the Xcode developer tools of the currently running system



79
80
81
82
# File 'lib/fastlane_core/helper.rb', line 79

def self.xcode_path
  return "" if self.is_test? and !self.is_mac?
  `xcode-select -p`.delete("\n") + "/"
end

.xcode_versionObject

Returns The version of the currently used Xcode installation (e.g. “7.0”).

Returns:

  • The version of the currently used Xcode installation (e.g. “7.0”)



85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/fastlane_core/helper.rb', line 85

def self.xcode_version
  return @xcode_version if @xcode_version

  begin
    output = `DEVELOPER_DIR='' "#{xcode_path}/usr/bin/xcodebuild" -version`
    @xcode_version = output.split("\n").first.split(' ')[1]
  rescue => ex
    UI.error(ex)
    UI.error("Error detecting currently used Xcode installation")
  end
  @xcode_version
end