From 09178fca7320ed4919b7c5e845598f9ad998d6d3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 24 Aug 2013 20:58:25 +0000 Subject: player: cd/pwd handlers for manipulating working directory Some effects may be easier to save/store with relative directory paths, so allow changing this at runtime. --- lib/dtas/player.rb | 4 ++++ lib/dtas/player/client_handler.rb | 11 +++++++++++ 2 files changed, 15 insertions(+) (limited to 'lib') diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb index b26303c..e055fa5 100644 --- a/lib/dtas/player.rb +++ b/lib/dtas/player.rb @@ -180,6 +180,10 @@ class DTAS::Player io.emit("OK") when "source" source_handler(io, msg) + when "cd" + chdir_handler(io, msg) + when "pwd" + io.emit(Dir.pwd) end end diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index aabd1ab..b3c208d 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -449,4 +449,15 @@ module DTAS::Player::ClientHandler io.emit("ERR unknown source op") end end + + def chdir_handler(io, msg) + msg.size == 1 or return io.emit("ERR usage: cd DIRNAME") + begin + Dir.chdir(msg[0]) + rescue => e + return io.emit("ERR chdir: #{e.message}") + end + # echo(%W(cd msg[0])) # should we broadcast this? + io.emit("OK") + end end -- cgit v1.2.3-24-ge0c7