Replace Foreman::Env with dotenv

This commit is contained in:
Brandon Keepers
2013-03-22 10:38:58 -04:00
parent 7be4375168
commit 3abe10e5ab
5 changed files with 14 additions and 33 deletions
+2 -4
View File
@@ -1,7 +1,7 @@
require "foreman"
require "foreman/env"
require "foreman/process"
require "foreman/procfile"
require "dotenv"
require "tempfile"
require "timeout"
require "fileutils"
@@ -172,9 +172,7 @@ class Foreman::Engine
# @param [String] filename A .env file to load into the environment
#
def load_env(filename)
Foreman::Env.new(filename).entries do |name, value|
@env[name] = value
end
@env.update Dotenv::Environment.new(filename)
end
# Send a signal to all processes started by this +Engine+
-29
View File
@@ -1,29 +0,0 @@
require "foreman"
class Foreman::Env
attr_reader :entries
def initialize(filename)
@entries = File.read(filename).gsub("\r\n","\n").split("\n").inject({}) do |ax, line|
if line =~ /\A([A-Za-z_0-9]+)=(.*)\z/
key = $1
case val = $2
# Remove single quotes
when /\A'(.*)'\z/ then ax[key] = $1
# Remove double quotes and unescape string preserving newline characters
when /\A"(.*)"\z/ then ax[key] = $1.gsub('\n', "\n").gsub(/\\(.)/, '\1')
else ax[key] = val
end
end
ax
end
end
def entries
@entries.each do |key, value|
yield key, value
end
end
end