standup 0.5.1 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/standup/remoting.rb +46 -14
- data/lib/standup/version.rb +1 -1
- data/scripts/db_backup.rb +1 -1
- data/scripts/init/standup.yml +3 -0
- data/scripts/ruby.rb +14 -12
- metadata +2 -2
data/lib/standup/remoting.rb
CHANGED
@@ -73,10 +73,40 @@ module Standup
|
|
73
73
|
with_context(:prefix => prefix, &block)
|
74
74
|
end
|
75
75
|
|
76
|
+
def raw_exec command
|
77
|
+
bright_p command
|
78
|
+
|
79
|
+
result = ''
|
80
|
+
|
81
|
+
collect_output = lambda do |data|
|
82
|
+
result << data
|
83
|
+
print(data)
|
84
|
+
STDOUT.flush
|
85
|
+
end
|
86
|
+
|
87
|
+
main_channel = ssh.open_channel do |ch|
|
88
|
+
ch.exec("bash -l") do |ch2, _|
|
89
|
+
ch2.on_data { |_, data| collect_output.call(data) }
|
90
|
+
|
91
|
+
ch2.on_extended_data { |_, _, data| collect_output.call(data) }
|
92
|
+
|
93
|
+
ch2.send_data "export TERM=vt100\n"
|
94
|
+
|
95
|
+
ch2.send_data "#{command}\n"
|
96
|
+
|
97
|
+
ch2.send_data "exit\n"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
main_channel.wait
|
102
|
+
|
103
|
+
result
|
104
|
+
end
|
105
|
+
|
76
106
|
def exec command, context = @context
|
77
107
|
command = "#{context[:prefix].strip} #{command}" if context[:prefix].present?
|
78
108
|
command = "cd #{context[:path]} && #{command}" if context[:path].present?
|
79
|
-
command = "
|
109
|
+
command = "#{shell_command} -c \"#{command.gsub(/"/, '\"')}\""
|
80
110
|
|
81
111
|
if context[:user].present?
|
82
112
|
command = "sudo -u #{context[:user]} #{command}"
|
@@ -84,15 +114,13 @@ module Standup
|
|
84
114
|
command = "sudo #{command}"
|
85
115
|
end
|
86
116
|
|
87
|
-
|
88
|
-
ssh.exec! command do |ch, _, data|
|
89
|
-
ch[:result] ||= ""
|
90
|
-
ch[:result] << data
|
91
|
-
print data
|
92
|
-
STDOUT.flush
|
93
|
-
end
|
117
|
+
raw_exec command
|
94
118
|
end
|
95
|
-
|
119
|
+
|
120
|
+
def shell_command
|
121
|
+
rvm_installed? ? 'rvm-shell' : 'bash'
|
122
|
+
end
|
123
|
+
|
96
124
|
def sudo command = nil, &block
|
97
125
|
block = Proc.new { exec command } unless block_given?
|
98
126
|
with_context(:sudo => true, &block)
|
@@ -112,10 +140,10 @@ module Standup
|
|
112
140
|
result
|
113
141
|
end
|
114
142
|
|
115
|
-
def file_exists? path
|
116
|
-
|
143
|
+
def file_exists? path, raw = false
|
144
|
+
send(:"#{raw ? 'raw_' : ''}exec", "if [ -e #{path} ]; then echo 'true'; fi") == "true\n"
|
117
145
|
end
|
118
|
-
|
146
|
+
|
119
147
|
def install_packages packages, opts = {}
|
120
148
|
input = opts[:input] ? "echo \"#{opts[:input].join("\n")}\" | sudo " : ''
|
121
149
|
sudo "#{input}apt-get -qqy install #{packages}"
|
@@ -157,7 +185,10 @@ module Standup
|
|
157
185
|
end
|
158
186
|
|
159
187
|
def rvm_installed?
|
160
|
-
|
188
|
+
unless instance_variable_defined? :@rvm_installed
|
189
|
+
@rvm_installed = file_exists?('/usr/local/rvm/bin/rvm', true)
|
190
|
+
end
|
191
|
+
@rvm_installed
|
161
192
|
end
|
162
193
|
|
163
194
|
protected
|
@@ -166,7 +197,8 @@ module Standup
|
|
166
197
|
@ssh ||= Net::SSH.start @host, @user,
|
167
198
|
:keys => @keypair_file,
|
168
199
|
:paranoid => false,
|
169
|
-
:timeout => 10
|
200
|
+
:timeout => 10,
|
201
|
+
:compression => 'zlib'
|
170
202
|
end
|
171
203
|
|
172
204
|
def rsync source, destination, sudo
|
data/lib/standup/version.rb
CHANGED
data/scripts/db_backup.rb
CHANGED
data/scripts/init/standup.yml
CHANGED
data/scripts/ruby.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
Standup.script :node do
|
2
2
|
def run
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
unless remoting.rvm_installed?
|
4
|
+
install_package 'git-core'
|
5
|
+
sudo 'bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)'
|
6
|
+
sudo 'usermod -a -G rvm www-data'
|
7
|
+
exec 'source /usr/local/rvm/scripts/rvm'
|
8
|
+
remoting.instance_variable_set :@rvm_installed, true
|
9
|
+
end
|
10
|
+
|
11
|
+
unless exec('rvm list')[version]
|
12
|
+
install_packages 'build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev'
|
13
|
+
|
14
|
+
sudo "rvm install #{version}"
|
15
|
+
exec "rvm use #{version} --default"
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def version
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: standup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ilia Ablamonov
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2011-07-
|
15
|
+
date: 2011-07-06 00:00:00 +04:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|