From 069a044d37fa9cddd25f158ded673a76f15810e3 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 16:38:15 +0530 Subject: [PATCH 01/20] added dropbox paths --- lib/browserstack/localbinary.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/browserstack/localbinary.rb b/lib/browserstack/localbinary.rb index 5b6c27e..39c601e 100644 --- a/lib/browserstack/localbinary.rb +++ b/lib/browserstack/localbinary.rb @@ -13,14 +13,14 @@ def initialize @http_path = case host_os when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ @windows = true - "https://s3.amazonaws.com/browserStack/browserstack-local/BrowserStackLocal.exe" + "https://www.dropbox.com/s/oviu8oge5elv1ca/BrowserStackLocal-win32.exe?dl=0" when /darwin|mac os/ - "https://s3.amazonaws.com/browserStack/browserstack-local/BrowserStackLocal-darwin-x64" + "https://www.dropbox.com/s/q6quexatq5013xy/BrowserStackLocal-darwin-x64?dl=0" when /linux/ if 1.size == 8 - "https://s3.amazonaws.com/browserStack/browserstack-local/BrowserStackLocal-linux-x64" + "https://www.dropbox.com/s/jnrm7u3inwhnj5r/BrowserStackLocal-linux-x64?dl=0" else - "https://s3.amazonaws.com/browserStack/browserstack-local/BrowserStackLocal-linux-ia32" + "https://www.dropbox.com/s/ae2zsyxceeci0wk/BrowserStackLocal-linux-ia32?dl=0" end end From 24b92998fdcaa56d6f21f08b071c08d5e2506890 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 16:47:05 +0530 Subject: [PATCH 02/20] updated download code --- lib/browserstack/localbinary.rb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/lib/browserstack/localbinary.rb b/lib/browserstack/localbinary.rb index 39c601e..0129b18 100644 --- a/lib/browserstack/localbinary.rb +++ b/lib/browserstack/localbinary.rb @@ -41,14 +41,12 @@ def download(dest_parent_dir) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE - http.request_get(uri.path) do |res| - file = open(binary_path, 'w') - res.read_body do |chunk| - file.write(res.body) - end - file.close - FileUtils.chmod 0755, binary_path - end + res = http.get(uri.path) + file = open(binary_path, 'w') + file.write(res.body) + file.close + FileUtils.chmod 0755, binary_path + binary_path end From b57c05ae706902ffa652d83723883d8481923095 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 17:09:38 +0530 Subject: [PATCH 03/20] updated s3 path --- lib/browserstack/localbinary.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/browserstack/localbinary.rb b/lib/browserstack/localbinary.rb index 0129b18..0c8ef74 100644 --- a/lib/browserstack/localbinary.rb +++ b/lib/browserstack/localbinary.rb @@ -13,14 +13,14 @@ def initialize @http_path = case host_os when /mswin|msys|mingw|cygwin|bccwin|wince|emc/ @windows = true - "https://www.dropbox.com/s/oviu8oge5elv1ca/BrowserStackLocal-win32.exe?dl=0" + "https://s3.amazonaws.com/bs-automate-prod/local/BrowserStackLocal-win32.exe" when /darwin|mac os/ - "https://www.dropbox.com/s/q6quexatq5013xy/BrowserStackLocal-darwin-x64?dl=0" + "https://s3.amazonaws.com/bs-automate-prod/local/BrowserStackLocal-darwin-x64" when /linux/ if 1.size == 8 - "https://www.dropbox.com/s/jnrm7u3inwhnj5r/BrowserStackLocal-linux-x64?dl=0" + "https://s3.amazonaws.com/bs-automate-prod/local/BrowserStackLocal-linux-x64" else - "https://www.dropbox.com/s/ae2zsyxceeci0wk/BrowserStackLocal-linux-ia32?dl=0" + "https://s3.amazonaws.com/bs-automate-prod/local/BrowserStackLocal-linux-ia32" end end From 70e447dccc4f3795bf9234cd00b49b401d752172 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 17:35:07 +0530 Subject: [PATCH 04/20] check test on travis --- test/browserstack-local-test.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test/browserstack-local-test.rb b/test/browserstack-local-test.rb index 48f4baa..3e8cb34 100644 --- a/test/browserstack-local-test.rb +++ b/test/browserstack-local-test.rb @@ -12,18 +12,18 @@ def test_check_pid refute_nil @bs_local.pid, 0 end - def test_is_running - @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - assert_equal true, @bs_local.isRunning - end + # def test_is_running + # @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + # assert_equal true, @bs_local.isRunning + # end - def test_multiple_binary - @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - bs_local_2 = BrowserStack::Local.new - assert_raises BrowserStack::LocalException do - bs_local_2.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - end - end + # def test_multiple_binary + # @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + # bs_local_2 = BrowserStack::Local.new + # assert_raises BrowserStack::LocalException do + # bs_local_2.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + # end + # end def test_enable_verbose @bs_local.add_args('v') From d8c4592151bc57198f6b99581f8b79d9b25c9974 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 17:37:16 +0530 Subject: [PATCH 05/20] updated top --- lib/browserstack/local.rb | 2 +- test/browserstack-local-test.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 622e59c..b32ac84 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -93,7 +93,7 @@ def isRunning def stop return if @pid.nil? - Process.kill("TERM", @pid) + Process.kill("KILL", @pid) @process.close while true break if !self.isRunning diff --git a/test/browserstack-local-test.rb b/test/browserstack-local-test.rb index 3e8cb34..0b7b714 100644 --- a/test/browserstack-local-test.rb +++ b/test/browserstack-local-test.rb @@ -12,10 +12,10 @@ def test_check_pid refute_nil @bs_local.pid, 0 end - # def test_is_running - # @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - # assert_equal true, @bs_local.isRunning - # end + def test_is_running + @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + assert_equal true, @bs_local.isRunning + end # def test_multiple_binary # @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) From 07786b39023435f6f8a626c77fd0f9fb7f5fd6a4 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 17:44:10 +0530 Subject: [PATCH 06/20] use sigint --- lib/browserstack/local.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index b32ac84..f69fe57 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -93,7 +93,7 @@ def isRunning def stop return if @pid.nil? - Process.kill("KILL", @pid) + Process.kill("INT", @pid) @process.close while true break if !self.isRunning From cd4d926088e64780c9785da1fc26c95adaa4d5f0 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 17:53:47 +0530 Subject: [PATCH 07/20] use sigterm --- lib/browserstack/local.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index f69fe57..622e59c 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -93,7 +93,7 @@ def isRunning def stop return if @pid.nil? - Process.kill("INT", @pid) + Process.kill("TERM", @pid) @process.close while true break if !self.isRunning From 75b6f67639ea75f921b42072b6a92c183dfe7311 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 18:02:17 +0530 Subject: [PATCH 08/20] put back test --- test/browserstack-local-test.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/browserstack-local-test.rb b/test/browserstack-local-test.rb index 0b7b714..48f4baa 100644 --- a/test/browserstack-local-test.rb +++ b/test/browserstack-local-test.rb @@ -17,13 +17,13 @@ def test_is_running assert_equal true, @bs_local.isRunning end - # def test_multiple_binary - # @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - # bs_local_2 = BrowserStack::Local.new - # assert_raises BrowserStack::LocalException do - # bs_local_2.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) - # end - # end + def test_multiple_binary + @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + bs_local_2 = BrowserStack::Local.new + assert_raises BrowserStack::LocalException do + bs_local_2.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + end + end def test_enable_verbose @bs_local.add_args('v') From 154fb977e4801ec0804cad28b8c8ccb26d09c45a Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Tue, 1 Mar 2016 18:35:17 +0530 Subject: [PATCH 09/20] added ruby versions --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 047f9a5..7337cca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,8 @@ language: ruby rvm: - 1.8.7 + - 1.9.3 + - 2.2.1 before_install: - true && `base64 --decode <<< ZXhwb3J0IEJST1dTRVJTVEFDS19BQ0NFU1NfS0VZPUh5VmZydXJvb3dYb041eGhLZEs2Cg==` From d84bb7bf7db5f80e93a23fbaab3b0ce53ebb8d2e Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 14:44:41 +0530 Subject: [PATCH 10/20] added build status --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4c9bccb..8a69b8d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # browserstack-local-ruby +[![Build Status](https://travis-ci.org/browserstack/browserstack-local-ruby.svg?branch=master)](https://travis-ci.org/browserstack/browserstack-local-ruby) + ## Setup ``` From 5fd6c67244b293b1a35784135171b62ee314923b Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 14:53:34 +0530 Subject: [PATCH 11/20] int 3 kill --- lib/browserstack/local.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 622e59c..1477945 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -93,10 +93,11 @@ def isRunning def stop return if @pid.nil? - Process.kill("TERM", @pid) + Process.kill("INT", @pid) + sleep 3 + Process.kill("KILL", @pid) @process.close - while true - break if !self.isRunning + while self.isRunning sleep 1 end end From f24b29f68de91368da1c0dfafe29d936841472a0 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 14:57:49 +0530 Subject: [PATCH 12/20] try force --- lib/browserstack/local.rb | 2 +- test/browserstack-local-test.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 1477945..1d09254 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -6,7 +6,7 @@ module BrowserStack class Local attr_reader :pid - def initialize(key = nil) + def initialize(key = ENV["BROWSERSTACK_ACCESS_KEY"]) @key = key @logfile = File.join(Dir.pwd, "local.log") end diff --git a/test/browserstack-local-test.rb b/test/browserstack-local-test.rb index 48f4baa..5ed2088 100644 --- a/test/browserstack-local-test.rb +++ b/test/browserstack-local-test.rb @@ -8,20 +8,20 @@ def setup end def test_check_pid - @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + @bs_local.start({'force' => true}) refute_nil @bs_local.pid, 0 end def test_is_running - @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + @bs_local.start({'force' => true}) assert_equal true, @bs_local.isRunning end def test_multiple_binary - @bs_local.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + @bs_local.start({'force' => true}) bs_local_2 = BrowserStack::Local.new assert_raises BrowserStack::LocalException do - bs_local_2.start({'key' => ENV["BROWSERSTACK_ACCESS_KEY"]}) + bs_local_2.start({'force' => true}) end end From 7d17785d30f5c7c4d687df3fa6d584cd5263bc4d Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 15:03:02 +0530 Subject: [PATCH 13/20] added lsof pid --- lib/browserstack/local.rb | 3 +++ test/browserstack-local-test.rb | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 1d09254..a7dab5f 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -93,10 +93,13 @@ def isRunning def stop return if @pid.nil? + puts "PID #{@pid}" + puts `lsof -i:45691` Process.kill("INT", @pid) sleep 3 Process.kill("KILL", @pid) @process.close + puts `lsof -i:45691` while self.isRunning sleep 1 end diff --git a/test/browserstack-local-test.rb b/test/browserstack-local-test.rb index 5ed2088..17bebd6 100644 --- a/test/browserstack-local-test.rb +++ b/test/browserstack-local-test.rb @@ -8,20 +8,20 @@ def setup end def test_check_pid - @bs_local.start({'force' => true}) + @bs_local.start refute_nil @bs_local.pid, 0 end def test_is_running - @bs_local.start({'force' => true}) + @bs_local.start assert_equal true, @bs_local.isRunning end def test_multiple_binary - @bs_local.start({'force' => true}) + @bs_local.start bs_local_2 = BrowserStack::Local.new assert_raises BrowserStack::LocalException do - bs_local_2.start({'force' => true}) + bs_local_2.start end end From 1efcfa83d4dca142383f8ae70e86df91a769b833 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 15:04:30 +0530 Subject: [PATCH 14/20] added lsof pid --- lib/browserstack/local.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index a7dab5f..e56d0dc 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -94,6 +94,7 @@ def isRunning def stop return if @pid.nil? puts "PID #{@pid}" + puts `ps aux| grep BrowserStackLocal` puts `lsof -i:45691` Process.kill("INT", @pid) sleep 3 From 4db2aef542bb2a548dc423e4504f494f57a61803 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 15:05:05 +0530 Subject: [PATCH 15/20] added lsof pid --- lib/browserstack/local.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index e56d0dc..8d195c6 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -100,6 +100,8 @@ def stop sleep 3 Process.kill("KILL", @pid) @process.close + puts "Closed" + puts `ps aux| grep BrowserStackLocal` puts `lsof -i:45691` while self.isRunning sleep 1 From 5c7325161c4f92bd784de243e9269664e6d789da Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 15:34:23 +0530 Subject: [PATCH 16/20] update popen --- lib/browserstack/local.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 8d195c6..a6cf84c 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -58,7 +58,7 @@ def start(options = {}) end system("echo '' > '#{@logfile}'") - @process = IO.popen(command, "w+") + @process = IO.popen(command) @stdout = File.open(@logfile, "r") while true From e2085e89a0d568b3340beee0fdbbb49d00b4cf34 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 15:56:29 +0530 Subject: [PATCH 17/20] using spawn --- .travis.yml | 1 - lib/browserstack/local.rb | 16 ++++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7337cca..4023e9f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: ruby rvm: - - 1.8.7 - 1.9.3 - 2.2.1 diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index a6cf84c..9124919 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -58,7 +58,11 @@ def start(options = {}) end system("echo '' > '#{@logfile}'") - @process = IO.popen(command) + if defined? spawn + @pid = spawn(command) + Process.detach @pid + end + #@process = IO.popen(command) @stdout = File.open(@logfile, "r") while true @@ -75,7 +79,7 @@ def start(options = {}) return end if line.strip == "Press Ctrl-C to exit" - @pid = @process.pid + #@pid = @process.pid @stdout.close break end @@ -96,10 +100,10 @@ def stop puts "PID #{@pid}" puts `ps aux| grep BrowserStackLocal` puts `lsof -i:45691` - Process.kill("INT", @pid) - sleep 3 - Process.kill("KILL", @pid) - @process.close + Process.kill("TERM", @pid) + # sleep 3 + # Process.kill("KILL", @pid) + # @process.close puts "Closed" puts `ps aux| grep BrowserStackLocal` puts `lsof -i:45691` From 6ae7740aba1ce373d55af98c527ea9cbea73d09f Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 16:13:33 +0530 Subject: [PATCH 18/20] use spawn --- lib/browserstack/local.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 9124919..b58005a 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -58,10 +58,8 @@ def start(options = {}) end system("echo '' > '#{@logfile}'") - if defined? spawn - @pid = spawn(command) - Process.detach @pid - end + @pid = Process.spawn(command) + Process.detach @pid #@process = IO.popen(command) @stdout = File.open(@logfile, "r") From 92852fbafdfb4ace2381b10e6664fffe59b54625 Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 16:51:53 +0530 Subject: [PATCH 19/20] try popen args --- lib/browserstack/local.rb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index b58005a..93131e5 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -58,9 +58,9 @@ def start(options = {}) end system("echo '' > '#{@logfile}'") - @pid = Process.spawn(command) - Process.detach @pid - #@process = IO.popen(command) + #@pid = spawn() + #Process.detach @pid + @process = IO.popen(command_args) @stdout = File.open(@logfile, "r") while true @@ -77,7 +77,7 @@ def start(options = {}) return end if line.strip == "Press Ctrl-C to exit" - #@pid = @process.pid + @pid = @process.pid @stdout.close break end @@ -101,7 +101,7 @@ def stop Process.kill("TERM", @pid) # sleep 3 # Process.kill("KILL", @pid) - # @process.close + @process.close puts "Closed" puts `ps aux| grep BrowserStackLocal` puts `lsof -i:45691` @@ -113,6 +113,10 @@ def stop def command "#{@binary_path} -logFile '#{@logfile}' #{@folder_flag} #{@key} #{@folder_path} #{@force_local_flag} #{@local_identifier_flag} #{@only_flag} #{@only_automate_flag} #{@proxy_host} #{@proxy_port} #{@proxy_user} #{@proxy_pass} #{@force_flag} #{@verbose_flag} #{@hosts}".strip end + + def command_args + ["#{@binary_path}", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_flag}", "#{@verbose_flag}", "#{@hosts}", :err => [:child, :out]] + end end end From 94177e2b0d36254843a6323442a4c095e4b7ff8d Mon Sep 17 00:00:00 2001 From: Vibhaj Rajan Date: Wed, 2 Mar 2016 17:11:21 +0530 Subject: [PATCH 20/20] fixes issue --- lib/browserstack/local.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/browserstack/local.rb b/lib/browserstack/local.rb index 93131e5..02d71db 100644 --- a/lib/browserstack/local.rb +++ b/lib/browserstack/local.rb @@ -95,16 +95,8 @@ def isRunning def stop return if @pid.nil? - puts "PID #{@pid}" - puts `ps aux| grep BrowserStackLocal` - puts `lsof -i:45691` Process.kill("TERM", @pid) - # sleep 3 - # Process.kill("KILL", @pid) @process.close - puts "Closed" - puts `ps aux| grep BrowserStackLocal` - puts `lsof -i:45691` while self.isRunning sleep 1 end @@ -115,7 +107,10 @@ def command end def command_args - ["#{@binary_path}", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_flag}", "#{@verbose_flag}", "#{@hosts}", :err => [:child, :out]] + args = ["#{@binary_path}", "-logFile", "#{@logfile}", "#{@key}", "#{@folder_flag}", "#{@folder_path}", "#{@force_local_flag}", "#{@local_identifier_flag}", "#{@only_flag}", "#{@only_automate_flag}", "#{@proxy_host}", "#{@proxy_port}", "#{@proxy_user}", "#{@proxy_pass}", "#{@force_flag}", "#{@verbose_flag}", "#{@hosts}"] + args = args.select {|a| a.to_s != "" } + args.push(:err => [:child, :out]) + args end end