[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] player/client_handler: support for dumping individual env
From: |
Eric Wong |
Subject: |
[PATCH] player/client_handler: support for dumping individual env |
Date: |
Sun, 1 Sep 2013 22:37:14 +0000 |
This allows users to display the current env value for introspection
---
lib/dtas/player/client_handler.rb | 8 ++++++++
test/test_player_client_handler.rb | 12 ++++++++++++
2 files changed, 20 insertions(+)
diff --git a/lib/dtas/player/client_handler.rb
b/lib/dtas/player/client_handler.rb
index 16714f0..7f1c72e 100644
--- a/lib/dtas/player/client_handler.rb
+++ b/lib/dtas/player/client_handler.rb
@@ -416,6 +416,14 @@ module DTAS::Player::ClientHandler # :nodoc:
end
def env_handler(io, msg)
+ if msg.empty?
+ # this may fail for large envs due to SEQPACKET size restrictions
+ # do we care?
+ env = ENV.map do |k,v|
+ "#{Shellwords.escape(k)}=#{Shellwords.escape(v)}"
+ end.join(' ')
+ return io.emit(env)
+ end
msg.each do |kv|
case kv
when %r{\A([^=]+)=(.*)\z}
diff --git a/test/test_player_client_handler.rb
b/test/test_player_client_handler.rb
index 21d8489..edcb35d 100644
--- a/test/test_player_client_handler.rb
+++ b/test/test_player_client_handler.rb
@@ -82,4 +82,16 @@ class TestPlayerClientHandler < Minitest::Unit::TestCase
sink_handler(@io, %W(ls))
assert_equal expect, Shellwords.split(@io[0])
end
+
+ def test_env
+ env_handler(@io, [])
+ res = @io[0]
+ result = {}
+ Shellwords.split(res).each do |kv|
+ k, v = kv.split(/=/, 2)
+ result[k] = v
+ end
+ expect = ENV.to_hash
+ assert_equal expect, result
+ end
end
--
1.8.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] player/client_handler: support for dumping individual env,
Eric Wong <=