diff options
Diffstat (limited to 'lib/dtas/player')
-rw-r--r-- | lib/dtas/player/client_handler.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index f601d46..bbdc1c5 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -479,5 +479,26 @@ module DTAS::Player::ClientHandler # :nodoc: # echo(%W(cd msg[0])) # should we broadcast this? io.emit("OK") end + + def state_file_handler(io, msg) + case msg.shift + when "dump" + dest = msg.shift + if dest + sf = DTAS::StateFile.new(dest, false) + elsif @state_file + sf = @state_file + dest = sf.path + else + return io.emit("ERR no state file configured") + end + begin + sf.dump(self) + rescue => e + return io.emit("ERR dumping to #{xs(Array(dest))} #{e.message}") + end + end + io.emit("OK") + end end # :startdoc: |