From 3e392aa8edf36a471f951b880e421be056d72587 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 18 Jan 2015 08:42:07 +0000 Subject: sinkedit: flesh out all parameters dtas-sinkedit now shows default parameters in addition to user-changed parameters, allowing easier editing. Also, we need to be able to revert back to using the default pipe_size on Linux by setting pipe_size to nil (as an empty field in YAML). --- bin/dtas-sinkedit | 4 +++- lib/dtas/player/client_handler.rb | 4 ++-- test/test_sink_pipe_size.rb | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/dtas-sinkedit b/bin/dtas-sinkedit index b631728..1b5cd19 100755 --- a/bin/dtas-sinkedit +++ b/bin/dtas-sinkedit @@ -28,10 +28,12 @@ update_cmd_env(cmd, orig, sink) cmd << "#{field}=#{sink[field] ? 'true' : 'false'}" end -%w(prio pipe_size).each do |field| +%w(prio).each do |field| value = sink[field] and cmd << "#{field}=#{value}" end +%w(pipe_size).each { |field| cmd << "#{field}=#{sink[field]}" } + # nil OK %w(command).each do |field| cmd << "#{field}=#{sink[field]}" diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index 35f85c2..e1e68aa 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -150,7 +150,7 @@ module DTAS::Player::ClientHandler # :nodoc: rv = set_bool(io, kv, v) { |b| sink.__send__("#{k}=", b) } rv == true or return rv when "pipe_size" - rv = set_uint(io, kv, v, false) { |u| sink.pipe_size = u } + rv = set_uint(io, kv, v, true) { |u| sink.pipe_size = u } rv == true or return rv when "command" # nothing to validate, this could be "rm -rf /" :> sink.command = v.empty? ? DTAS::Sink::SINK_DEFAULTS["command"] : v @@ -170,7 +170,7 @@ module DTAS::Player::ClientHandler # :nodoc: io.emit("OK") when "cat" sink = @sinks[name] or return io.emit("ERR #{name} not found") - io.emit(sink.to_hsh.to_yaml) + io.emit(sink.to_hash.to_yaml) else io.emit("ERR unknown sink op #{msg[0]}") end diff --git a/test/test_sink_pipe_size.rb b/test/test_sink_pipe_size.rb index 43abb6c..b6e19ca 100644 --- a/test/test_sink_pipe_size.rb +++ b/test/test_sink_pipe_size.rb @@ -11,7 +11,7 @@ begin default_sink_pid(s) s.req_ok("sink ed default pipe_size=0x1000") s.req_ok("sink ed default pipe_size=0x10000") - assert_match %r{\AERR }, s.req("sink ed default pipe_size=") + s.req_ok("sink ed default pipe_size=") s.req_ok("sink ed default pipe_size=4096") end if IO.method_defined?(:pipe_size=) end -- cgit v1.2.3-24-ge0c7