From b75337e21e565d124e3506935cc1be1080aa98d3 Mon Sep 17 00:00:00 2001 From: Phil Hagelberg Date: Wed, 18 Apr 2012 09:56:17 -0700 Subject: [PATCH] Move read_environment to a public class method. --- lib/foreman/engine.rb | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/foreman/engine.rb b/lib/foreman/engine.rb index 71953fb..00766f1 100644 --- a/lib/foreman/engine.rb +++ b/lib/foreman/engine.rb @@ -51,6 +51,22 @@ class Foreman::Engine environment.each { |k,v| ENV[k] = v } end + def self.read_environment(filename) + return {} unless File.exists?(filename) + + File.read(filename).split("\n").inject({}) do |hash, line| + if line =~ /\A([A-Za-z_0-9]+)=(.*)\z/ + key, val = [$1, $2] + case val + when /\A'(.*)'\z/ then hash[key] = $1 + when /\A"(.*)"\z/ then hash[key] = $1.gsub(/\\(.)/, '\1') + else hash[key] = val + end + end + hash + end + end + private ###################################################################### def spawn_processes @@ -195,26 +211,10 @@ private ###################################################################### (filenames || "").split(",").map(&:strip).each do |filename| error "No such file: #{filename}" unless File.exists?(filename) - environment.merge!(read_environment(filename)) + environment.merge!(Foreman::Engine.read_environment(filename)) end - environment.merge!(read_environment(".env")) unless filenames + environment.merge!(Foreman::Engine.read_environment(".env")) unless filenames environment end - - def read_environment(filename) - return {} unless File.exists?(filename) - - File.read(filename).split("\n").inject({}) do |hash, line| - if line =~ /\A([A-Za-z_0-9]+)=(.*)\z/ - key, val = [$1, $2] - case val - when /\A'(.*)'\z/ then hash[key] = $1 - when /\A"(.*)"\z/ then hash[key] = $1.gsub(/\\(.)/, '\1') - else hash[key] = val - end - end - hash - end - end end