class Fastlane::Helper::DotenvHelper
Public Class Methods
find_dotenv_directory()
click to toggle source
finds the first directory of [fastlane, its parent] containing dotenv files
# File fastlane/lib/fastlane/helper/dotenv_helper.rb, line 14 def self.find_dotenv_directory path = FastlaneCore::FastlaneFolder.path search_paths = [path] search_paths << path + "/.." unless path.nil? search_paths.compact! search_paths.find do |dir| Dir.glob(File.join(dir, '*.env*'), File::FNM_DOTMATCH).count > 0 end end
load_dot_env(env_cl_param)
click to toggle source
@param env_cl_param [String] an optional list of dotenv environment names separated by commas, without space
# File fastlane/lib/fastlane/helper/dotenv_helper.rb, line 5 def self.load_dot_env(env_cl_param) base_path = find_dotenv_directory return unless base_path load_dot_envs_from(env_cl_param, base_path) end
load_dot_envs_from(env_cl_param, base_path)
click to toggle source
loads the dotenvs. First the .env and .env.default and then override with all speficied extra environments
# File fastlane/lib/fastlane/helper/dotenv_helper.rb, line 26 def self.load_dot_envs_from(env_cl_param, base_path) require 'dotenv' # Making sure the default '.env' and '.env.default' get loaded env_file = File.join(base_path, '.env') env_default_file = File.join(base_path, '.env.default') Dotenv.load(env_file, env_default_file) return unless env_cl_param Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::ENVIRONMENT] = env_cl_param # multiple envs? envs = env_cl_param.split(",") # Loads .env file for the environment(s) passed in through options envs.each do |env| env_file = File.join(base_path, ".env.#{env}") UI.success("Loading from '#{env_file}'") Dotenv.overload(env_file) end end