Module: FastlaneCore::Helper
- Defined in:
- lib/fastlane_core/helper.rb
Class Method Summary collapse
- .fastlane_enabled? ⇒ Boolean
-
.gem_path(gem_name) ⇒ Object
Path to the installed gem to load resources (e.g. resign.sh).
-
.is_ci? ⇒ Boolean
True if building in a known CI environment.
-
.is_test? ⇒ Boolean
Use Helper.test? instead.
-
.log ⇒ Object
Logging happens using this method.
-
.log_alert(text) ⇒ Object
This method can be used to add nice lines around the actual log Use this to log more important things The logs will be green automatically.
-
.test? ⇒ Boolean
True if the currently running program is a unit test.
-
.transporter_path ⇒ Object
The full path to the iTMSTransporter executable.
-
.xcode_path ⇒ Object
The full path to the Xcode developer tools of the currently running system.
Class Method Details
.fastlane_enabled? ⇒ Boolean
83 84 85 86 |
# File 'lib/fastlane_core/helper.rb', line 83 def self.fastlane_enabled? # This is called from the root context on the first start @@enabled ||= File.directory?"./fastlane" end |
.gem_path(gem_name) ⇒ Object
Path to the installed gem to load resources (e.g. resign.sh)
89 90 91 92 93 94 95 |
# File 'lib/fastlane_core/helper.rb', line 89 def self.gem_path(gem_name) if not 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 true if building in a known CI environment.
57 58 59 60 |
# File 'lib/fastlane_core/helper.rb', line 57 def self.is_ci? # Check for Jenkins or Travis CI environment variables ENV.has_key?("JENKINS_URL") || ENV.has_key?("TRAVIS") end |
.is_test? ⇒ Boolean
Use Helper.test? instead
52 53 54 |
# File 'lib/fastlane_core/helper.rb', line 52 def self.is_test? self.test? end |
.log ⇒ Object
Logging happens using this method
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 33 34 |
# File 'lib/fastlane_core/helper.rb', line 7 def self.log if is_test? @@log ||= Logger.new(nil) # don't show any logs when running tests else @@log ||= Logger.new(STDOUT) end @@log.formatter = proc do |severity, datetime, progname, msg| string = "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%2N')}]: " second = "#{msg}\n" if severity == "DEBUG" string = string.magenta elsif severity == "INFO" string = string.white elsif severity == "WARN" string = string.yellow elsif severity == "ERROR" string = string.red elsif severity == "FATAL" string = string.red.bold end [string, second].join("") end @@log end |
.log_alert(text) ⇒ Object
This method can be used to add nice lines around the actual log Use this to log more important things The logs will be green automatically
39 40 41 42 43 44 |
# File 'lib/fastlane_core/helper.rb', line 39 def self.log_alert(text) i = text.length + 8 Helper.log.info(("-" * i).green) Helper.log.info("--- ".green + text.green + " ---".green) Helper.log.info(("-" * i).green) end |
.test? ⇒ Boolean
Returns true if the currently running program is a unit test.
47 48 49 |
# File 'lib/fastlane_core/helper.rb', line 47 def self.test? defined?SpecHelper end |
.transporter_path ⇒ Object
Returns the full path to the iTMSTransporter executable.
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/fastlane_core/helper.rb', line 70 def self.transporter_path return '' unless OS.mac? # so tests work on Linx too [ "../Applications/Application Loader.app/Contents/MacOS/itms/bin/iTMSTransporter", "../Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter" ].each do |path| result = File.join(self.xcode_path, path) return result if File.exists?(result) end raise "Could not find transporter at #{self.xcode_path}. Please make sure you set the correct path to your Xcode installation.".red end |
.xcode_path ⇒ Object
Returns the full path to the Xcode developer tools of the currently running system.
64 65 66 67 |
# File 'lib/fastlane_core/helper.rb', line 64 def self.xcode_path return "" if self.is_test? and not OS.mac? `xcode-select -p`.gsub("\n", '') + "/" end |