Commit 8ee375b
Changed files (3)
lib
lib/del/message.rb
@@ -16,25 +16,13 @@ module Del
def execute_shell(command)
command = Array(command).flatten.join(' ')
reply("Okay, I will run '#{command}'.")
- success = false
- Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
- stdout.each_line do |line|
- if block_given?
- yield line
- else
- reply("#{PREFIX} #{line}")
- end
+ ShellCommand.new(command).run do |line|
+ if block_given?
+ yield line
+ else
+ reply("#{PREFIX} #{line}")
end
- stderr.each_line do |line|
- if block_given?
- yield line
- else
- reply("#{PREFIX} #{line}")
- end
- end
- success = wait_thr.value.success?
end
- success
end
def to_s
lib/del/shell_command.rb
@@ -0,0 +1,15 @@
+module Del
+ class ShellCommand
+ def initialize(command)
+ @command = Array(command).flatten.join(' ')
+ end
+
+ def run
+ Open3.popen3(@command) do |stdin, stdout, stderr, wait_thr|
+ stdout.each_line { |line| yield line }
+ stderr.each_line { |line| yield line }
+ wait_thr.value.success?
+ end
+ end
+ end
+end
lib/del.rb
@@ -14,6 +14,7 @@ require "del/default_router"
require "del/message"
require "del/repository"
require "del/robot"
+require "del/shell_command"
require "del/socket_connection"
require "del/socket_server"
require "del/source"