sshkit 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
3
3
  This file is written in reverse chronological order, newer releases will
4
4
  appear at the top.
5
5
 
6
+ ## 0.0.13
7
+
8
+ * Correctly quote `as(user)` commands, previously it would expand to:
9
+ `sudo su user -c /usr/bin/env echo "Hello World"`, in which the command to
10
+ run was taken as simply `/usr/bin/env`. By quoting all arguments it should
11
+ now work as expected. `sudo su user -c "/usr/bin/env echo \""Hello World\""`
12
+
6
13
  ## 0.0.12
7
14
 
8
15
  * Also print anything the program wrote to stdout when the exit status is
@@ -142,7 +142,7 @@ module SSHKit
142
142
  end
143
143
  end
144
144
  if options[:user]
145
- cs << "sudo su #{options[:user]} -c "
145
+ cs << "sudo su #{options[:user]} -c \""
146
146
  end
147
147
  if options[:run_in_background]
148
148
  cs << 'nohup '
@@ -155,6 +155,9 @@ module SSHKit
155
155
  if options[:run_in_background]
156
156
  cs << ' > /dev/null &'
157
157
  end
158
+ if options[:user]
159
+ cs << "\""
160
+ end
158
161
  if options[:env]
159
162
  cs << ' )'
160
163
  end
@@ -1,3 +1,3 @@
1
1
  module SSHKit
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
@@ -78,7 +78,7 @@ module SSHKit
78
78
 
79
79
  def test_working_as_a_given_user
80
80
  c = Command.new(:whoami, user: :anotheruser)
81
- assert_equal "sudo su anotheruser -c /usr/bin/env whoami", String(c)
81
+ assert_equal "sudo su anotheruser -c \"/usr/bin/env whoami\"", String(c)
82
82
  end
83
83
 
84
84
  def test_backgrounding_a_task
@@ -88,12 +88,12 @@ module SSHKit
88
88
 
89
89
  def test_backgrounding_a_task_as_a_given_user
90
90
  c = Command.new(:sleep, 15, run_in_background: true, user: :anotheruser)
91
- assert_equal "sudo su anotheruser -c nohup /usr/bin/env sleep 15 > /dev/null &", String(c)
91
+ assert_equal "sudo su anotheruser -c \"nohup /usr/bin/env sleep 15 > /dev/null &\"", String(c)
92
92
  end
93
93
 
94
94
  def test_backgrounding_a_task_as_a_given_user_with_env
95
95
  c = Command.new(:sleep, 15, run_in_background: true, user: :anotheruser, env: {a: :b})
96
- assert_equal "( A=b sudo su anotheruser -c nohup /usr/bin/env sleep 15 > /dev/null & )", String(c)
96
+ assert_equal "( A=b sudo su anotheruser -c \"nohup /usr/bin/env sleep 15 > /dev/null &\" )", String(c)
97
97
  end
98
98
 
99
99
  def test_complete?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sshkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: