diff options
author | Eric Wong <e@80x24.org> | 2015-01-18 08:42:07 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-01-19 09:58:47 +0000 |
commit | 3e392aa8edf36a471f951b880e421be056d72587 (patch) | |
tree | 0d4d3d8e1cec5b0aefe58d2c1207409494a35cc9 | |
parent | b5bc0240f47dba01ff0a09263c210e5d391f88dc (diff) | |
download | dtas-3e392aa8edf36a471f951b880e421be056d72587.tar.gz |
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).
-rwxr-xr-x | bin/dtas-sinkedit | 4 | ||||
-rw-r--r-- | lib/dtas/player/client_handler.rb | 4 | ||||
-rw-r--r-- | 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 |