From 3e09ac0c10c95bb24a08af62393b4f761e2743d0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 24 Aug 2013 09:54:45 +0000 Subject: initial commit --- bin/dtas-player | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 bin/dtas-player (limited to 'bin/dtas-player') diff --git a/bin/dtas-player b/bin/dtas-player new file mode 100755 index 0000000..8b78771 --- /dev/null +++ b/bin/dtas-player @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby +# -*- encoding: binary -*- +# Copyright (C) 2013, Eric Wong +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) +Thread.abort_on_exception = $stderr.sync = $stdout.sync = true +require 'yaml' +require 'dtas/player' +sock = (ENV["DTAS_PLAYER_SOCK"] || + File.expand_path("~/.dtas/player.sock")).b +state = (ENV["DTAS_PLAYER_STATE"] || + File.expand_path("~/.dtas/player_state.yml")).b +[ sock, state ].each do |file| + dir = File.dirname(file) + next if File.directory?(dir) + require 'fileutils' + FileUtils.mkpath(dir) +end + +state = DTAS::StateFile.new(state) +if tmp = state.tryload + tmp["socket"] ||= sock + player = DTAS::Player.load(tmp) + player.state_file ||= state +else + player = DTAS::Player.new + player.state_file = state + player.socket = sock +end + +at_exit { player.close } +player.bind +trap(:INT) { exit } +trap(:TERM) { exit } +player.run -- cgit v1.2.3-24-ge0c7