script_executor 1.0.1 → 1.1.0
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/.idea/.rakeTasks +1 -1
- data/.idea/script_executor.iml +0 -1
- data/.idea/workspace.xml +256 -113
- data/lib/executable.rb +3 -0
- data/lib/script_executor.rb +1 -1
- data/lib/script_executor/executable.rb +177 -0
- data/lib/script_executor/script_executor.rb +2 -159
- data/lib/script_executor/version.rb +1 -1
- data/spec/script_executor_spec.rb +62 -39
- metadata +4 -2
data/.idea/.rakeTasks
CHANGED
|
@@ -4,4 +4,4 @@ You are allowed to:
|
|
|
4
4
|
1. Remove rake task
|
|
5
5
|
2. Add existing rake tasks
|
|
6
6
|
To add existing rake tasks automatically delete this file and reload the project.
|
|
7
|
-
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Run RSpec code examples" fullCmd="spec" taksId="spec" /><RakeTask description="" fullCmd="build" taksId="build" /><RakeTask description="" fullCmd="install" taksId="install" /><RakeTask description="" fullCmd="release" taksId="release" /></RakeGroup></Settings>
|
data/.idea/script_executor.iml
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
<orderEntry type="sourceFolder" forTests="false" />
|
|
16
16
|
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.2.3, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
|
17
17
|
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.1.3, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.5, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
|
19
18
|
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
|
20
19
|
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.0.5, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
|
21
20
|
<orderEntry type="library" scope="PROVIDED" name="highline (v1.6.15, RVM: ruby-1.9.3-p327 [script_executor]) [gem]" level="application" />
|
data/.idea/workspace.xml
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
<project version="4">
|
|
3
3
|
<component name="ChangeListManager">
|
|
4
4
|
<list default="true" id="6995392e-f204-4557-be32-fd20f300d877" name="Default" comment="">
|
|
5
|
-
<change type="
|
|
6
|
-
<change type="
|
|
7
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR
|
|
8
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/
|
|
9
|
-
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/script_executor.gemspec" afterPath="$PROJECT_DIR$/script_executor.gemspec" />
|
|
5
|
+
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/lib/executable.rb" />
|
|
6
|
+
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/lib/script_executor/executable.rb" />
|
|
7
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.rakeTasks" afterPath="$PROJECT_DIR$/.idea/.rakeTasks" />
|
|
8
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/script_executor.rb" afterPath="$PROJECT_DIR$/lib/script_executor.rb" />
|
|
10
9
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/script_executor/script_executor.rb" afterPath="$PROJECT_DIR$/lib/script_executor/script_executor.rb" />
|
|
11
10
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/spec/script_executor_spec.rb" afterPath="$PROJECT_DIR$/spec/script_executor_spec.rb" />
|
|
12
11
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/script_executor/version.rb" afterPath="$PROJECT_DIR$/lib/script_executor/version.rb" />
|
|
12
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
|
13
13
|
</list>
|
|
14
14
|
<ignored path="script_executor.iws" />
|
|
15
15
|
<ignored path=".idea/workspace.xml" />
|
|
16
|
-
<file path="/Dummy.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
17
|
-
<file path="/Gemfile" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
18
|
-
<file path="/script_executor_spec.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
19
|
-
<file path="$PROJECT_DIR$/../../ui/src/thor/oracle_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
20
|
-
<file path="/oracle_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
21
|
-
<file path="$PROJECT_DIR$/../../ui/src/docs/how-to-install-tools-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
22
|
-
<file path="/how-to-install-tools-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
16
|
+
<file path="/Dummy.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355411695800" ignored="false" />
|
|
17
|
+
<file path="/Gemfile" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355411482839" ignored="false" />
|
|
18
|
+
<file path="/script_executor_spec.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355353469670" ignored="false" />
|
|
19
|
+
<file path="$PROJECT_DIR$/../../ui/src/thor/oracle_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355416098113" ignored="false" />
|
|
20
|
+
<file path="/oracle_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355170217364" ignored="false" />
|
|
21
|
+
<file path="$PROJECT_DIR$/../../ui/src/docs/how-to-install-tools-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179284273" ignored="false" />
|
|
22
|
+
<file path="/how-to-install-tools-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179183290" ignored="false" />
|
|
23
23
|
<file path="$USER_HOME$/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/rubygems.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061482853" ignored="false" />
|
|
24
24
|
<file path="$USER_HOME$/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/syck.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061482853" ignored="false" />
|
|
25
25
|
<file path="$USER_HOME$/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/mkmf.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061482853" ignored="false" />
|
|
@@ -70,10 +70,72 @@
|
|
|
70
70
|
<file path="$USER_HOME$/.rvm/gems/ruby-1.9.3-p327@script_executor/gems/rspec-expectations-2.12.0/lib/rspec/matchers/dsl.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061696976" ignored="false" />
|
|
71
71
|
<file path="$USER_HOME$/.rvm/gems/ruby-1.9.3-p327@script_executor/gems/rspec-expectations-2.12.0/lib/rspec/matchers/operator_matcher.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061696976" ignored="false" />
|
|
72
72
|
<file path="$USER_HOME$/.rvm/gems/ruby-1.9.3-p327@script_executor/gems/rspec-expectations-2.12.0/lib/rspec/matchers/pretty.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355061696976" ignored="false" />
|
|
73
|
-
<file path="$PROJECT_DIR$/../../ui/src/Gemfile" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
73
|
+
<file path="$PROJECT_DIR$/../../ui/src/Gemfile" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355412928924" ignored="false" />
|
|
74
74
|
<file path="/fragment.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355062484724" ignored="false" />
|
|
75
|
-
<file path="/script_executor.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="
|
|
75
|
+
<file path="/script_executor.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355415829525" ignored="false" />
|
|
76
76
|
<file path="/CHANGES" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355062946290" ignored="false" />
|
|
77
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/rake-0.8.7/lib/rake.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
78
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/file_utils-1.0.5/lib/file_utils/file_utils.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355082830869" ignored="false" />
|
|
79
|
+
<file path="$PROJECT_DIR$/../../ui/src/bin/install_oracle_client.sh" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179739279" ignored="false" />
|
|
80
|
+
<file path="/install_oracle_client.sh" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179739279" ignored="false" />
|
|
81
|
+
<file path="/a.rxml" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355155941784" ignored="false" />
|
|
82
|
+
<file path="/a.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156020300" ignored="false" />
|
|
83
|
+
<file path="/a.feature" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355155959870" ignored="false" />
|
|
84
|
+
<file path="/a.html" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355155962516" ignored="false" />
|
|
85
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/file_utils-1.0.6/lib/file_utils/file_utils.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
86
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/thor-0.16.0/lib/thor.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
87
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/ruby-debug-base-0.10.4/lib/ruby-debug-base.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156380308" ignored="false" />
|
|
88
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/thor-0.16.0/lib/thor/base.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
89
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/highline-1.6.2/lib/highline/import.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156380308" ignored="false" />
|
|
90
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/thor-0.16.0/lib/thor/shell.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156380308" ignored="false" />
|
|
91
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/thor-0.16.0/lib/thor/util.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156380308" ignored="false" />
|
|
92
|
+
<file path="$PROJECT_DIR$/../../ui/src/Gemfile.lock" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355413042305" ignored="false" />
|
|
93
|
+
<file path="/a.dummy" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355236966673" ignored="false" />
|
|
94
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/processing_instruction.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
95
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/builder.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
96
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/attribute_decl.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
97
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/namespace.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976039" ignored="false" />
|
|
98
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/thor-0.16.0/lib/thor/group.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
99
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/libxml-ruby-1.1.3/lib/libxml/node.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
100
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/capistrano-2.9.0/lib/capistrano/recipes/deploy/scm/accurev.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
101
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/net-sftp-2.0.5/lib/net/sftp/protocol/01/base.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
102
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/sax/document.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
103
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/nokogiri-1.5.0/lib/nokogiri/xml/node/save_options.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355156976040" ignored="false" />
|
|
104
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/mysql-2.8.1/lib/mysql_api.bundle" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355157215820" ignored="false" />
|
|
105
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@r21/gems/mysql-2.8.1/lib/mysql.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355157215820" ignored="false" />
|
|
106
|
+
<file path="$PROJECT_DIR$/../../ui/src/docs/how-to-install-project-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179671697" ignored="false" />
|
|
107
|
+
<file path="$PROJECT_DIR$/../../ui/src/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355160370287" ignored="false" />
|
|
108
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@global/gems/bundler-1.2.3/lib/bundler/runtime.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355161308510" ignored="false" />
|
|
109
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/shell/basic.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355161308510" ignored="false" />
|
|
110
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@global/gems/bundler-1.2.3/lib/bundler/dsl.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355161308510" ignored="false" />
|
|
111
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@global/gems/bundler-1.2.3/lib/bundler.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355161308510" ignored="false" />
|
|
112
|
+
<file path="$USER_HOME$/.rvm/gems/ruby-1.8.7-p371@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355161308510" ignored="false" />
|
|
113
|
+
<file path="$PROJECT_DIR$/../../ui/src/.rvmrc" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355178983225" ignored="false" />
|
|
114
|
+
<file path="/.rvmrc" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355178458251" ignored="false" />
|
|
115
|
+
<file path="$PROJECT_DIR$/../../ui/src/bin/signoff_server.sh" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355162000411" ignored="false" />
|
|
116
|
+
<file path="/signoff_server.sh" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355162000411" ignored="false" />
|
|
117
|
+
<file path="$PROJECT_DIR$/../../ui/src/thor/mysql_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355171729126" ignored="false" />
|
|
118
|
+
<file path="/mysql_client.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355171715036" ignored="false" />
|
|
119
|
+
<file path="$PROJECT_DIR$/../../ui/src/script/server" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355177080296" ignored="false" />
|
|
120
|
+
<file path="/server" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355177036710" ignored="false" />
|
|
121
|
+
<file path="$PROJECT_DIR$/../../ui/src/config/environment.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355177639518" ignored="false" />
|
|
122
|
+
<file path="/environment.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355177191360" ignored="false" />
|
|
123
|
+
<file path="/how-to-install-project-on-mountain-lion.txt" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355179671697" ignored="false" />
|
|
124
|
+
<file path="$PROJECT_DIR$/../../ui/src/config/dbauth/proteusui-vdv-dev" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355236982919" ignored="false" />
|
|
125
|
+
<file path="$PROJECT_DIR$/../../ui/src/config/dbauth/proteusui-billing-dev" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355236991453" ignored="false" />
|
|
126
|
+
<file path="$PROJECT_DIR$/../../ui/src/config/dbauthfiles/proteusui-billing-dev" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355244789972" ignored="false" />
|
|
127
|
+
<file path="$PROJECT_DIR$/../../ui/src/app/domain/partner.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355245302438" ignored="false" />
|
|
128
|
+
<file path="/executable.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355416708647" ignored="false" />
|
|
129
|
+
<file path="$PROJECT_DIR$/../../ui/src/thor/tomcat.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355410403079" ignored="false" />
|
|
130
|
+
<file path="/tomcat.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355410403079" ignored="false" />
|
|
131
|
+
<file path="$PROJECT_DIR$/../../ui/src/thor/ssh.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355415898117" ignored="false" />
|
|
132
|
+
<file path="/ssh.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355415893294" ignored="false" />
|
|
133
|
+
<file path="$PROJECT_DIR$/../../ui/src/thor/homer.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355416035915" ignored="false" />
|
|
134
|
+
<file path="$PROJECT_DIR$/../../ui/src/vendor/gems/script_executor/lib/script_executor/script_executor.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355415829525" ignored="false" />
|
|
135
|
+
<file path="$PROJECT_DIR$/../../ui/src/vendor/gems/script_executor/lib/script_executor.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355411914177" ignored="false" />
|
|
136
|
+
<file path="$PROJECT_DIR$/../../ui/src/vendor/gems/script_executor/lib/executable.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355411904894" ignored="false" />
|
|
137
|
+
<file path="$PROJECT_DIR$/../../ui/src/vendor/gems/script_executor/lib/script_executor/executable.rb" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355415271960" ignored="false" />
|
|
138
|
+
<file path="/homer.thor" changelist="6995392e-f204-4557-be32-fd20f300d877" time="1355416021332" ignored="false" />
|
|
77
139
|
<option name="TRACKING_ENABLED" value="true" />
|
|
78
140
|
<option name="SHOW_DIALOG" value="false" />
|
|
79
141
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
@@ -93,25 +155,7 @@
|
|
|
93
155
|
<file leaf-file-name="script_executor_spec.rb" pinned="false" current="false" current-in-tab="false">
|
|
94
156
|
<entry file="file://$PROJECT_DIR$/spec/script_executor_spec.rb">
|
|
95
157
|
<provider selected="true" editor-type-id="text-editor">
|
|
96
|
-
<state line="
|
|
97
|
-
<folding />
|
|
98
|
-
</state>
|
|
99
|
-
</provider>
|
|
100
|
-
</entry>
|
|
101
|
-
</file>
|
|
102
|
-
<file leaf-file-name="spec_helper.rb" pinned="false" current="false" current-in-tab="false">
|
|
103
|
-
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
|
104
|
-
<provider selected="true" editor-type-id="text-editor">
|
|
105
|
-
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
|
106
|
-
<folding />
|
|
107
|
-
</state>
|
|
108
|
-
</provider>
|
|
109
|
-
</entry>
|
|
110
|
-
</file>
|
|
111
|
-
<file leaf-file-name="script_executor.rb" pinned="false" current="false" current-in-tab="false">
|
|
112
|
-
<entry file="file://$PROJECT_DIR$/lib/script_executor.rb">
|
|
113
|
-
<provider selected="true" editor-type-id="text-editor">
|
|
114
|
-
<state line="2" column="0" selection-start="55" selection-end="55" vertical-scroll-proportion="0.0">
|
|
158
|
+
<state line="9" column="37" selection-start="208" selection-end="208" vertical-scroll-proportion="-5.5384617">
|
|
115
159
|
<folding />
|
|
116
160
|
</state>
|
|
117
161
|
</provider>
|
|
@@ -120,43 +164,25 @@
|
|
|
120
164
|
<file leaf-file-name="script_executor.rb" pinned="false" current="false" current-in-tab="false">
|
|
121
165
|
<entry file="file://$PROJECT_DIR$/lib/script_executor/script_executor.rb">
|
|
122
166
|
<provider selected="true" editor-type-id="text-editor">
|
|
123
|
-
<state line="
|
|
124
|
-
<folding />
|
|
125
|
-
</state>
|
|
126
|
-
</provider>
|
|
127
|
-
</entry>
|
|
128
|
-
</file>
|
|
129
|
-
<file leaf-file-name="version.rb" pinned="false" current="false" current-in-tab="false">
|
|
130
|
-
<entry file="file://$PROJECT_DIR$/lib/script_executor/version.rb">
|
|
131
|
-
<provider selected="true" editor-type-id="text-editor">
|
|
132
|
-
<state line="1" column="18" selection-start="40" selection-end="40" vertical-scroll-proportion="0.0">
|
|
167
|
+
<state line="3" column="0" selection-start="43" selection-end="43" vertical-scroll-proportion="0.0">
|
|
133
168
|
<folding />
|
|
134
169
|
</state>
|
|
135
170
|
</provider>
|
|
136
171
|
</entry>
|
|
137
172
|
</file>
|
|
138
|
-
<file leaf-file-name="
|
|
139
|
-
<entry file="file://$PROJECT_DIR$/
|
|
173
|
+
<file leaf-file-name="executable.rb" pinned="false" current="true" current-in-tab="true">
|
|
174
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor/executable.rb">
|
|
140
175
|
<provider selected="true" editor-type-id="text-editor">
|
|
141
|
-
<state line="
|
|
176
|
+
<state line="108" column="43" selection-start="2606" selection-end="2606" vertical-scroll-proportion="2.860927">
|
|
142
177
|
<folding />
|
|
143
178
|
</state>
|
|
144
179
|
</provider>
|
|
145
180
|
</entry>
|
|
146
181
|
</file>
|
|
147
|
-
<file leaf-file-name="
|
|
148
|
-
<entry file="file://$PROJECT_DIR$/CHANGES">
|
|
149
|
-
<provider selected="true" editor-type-id="text-editor">
|
|
150
|
-
<state line="9" column="43" selection-start="154" selection-end="154" vertical-scroll-proportion="0.0">
|
|
151
|
-
<folding />
|
|
152
|
-
</state>
|
|
153
|
-
</provider>
|
|
154
|
-
</entry>
|
|
155
|
-
</file>
|
|
156
|
-
<file leaf-file-name="Gemfile" pinned="false" current="true" current-in-tab="true">
|
|
182
|
+
<file leaf-file-name="Gemfile" pinned="false" current="false" current-in-tab="false">
|
|
157
183
|
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
158
184
|
<provider selected="true" editor-type-id="text-editor">
|
|
159
|
-
<state line="8" column="24" selection-start="120" selection-end="120" vertical-scroll-proportion="0.
|
|
185
|
+
<state line="8" column="24" selection-start="120" selection-end="120" vertical-scroll-proportion="0.0">
|
|
160
186
|
<folding />
|
|
161
187
|
</state>
|
|
162
188
|
</provider>
|
|
@@ -180,20 +206,22 @@
|
|
|
180
206
|
<component name="IdeDocumentHistory">
|
|
181
207
|
<option name="changedFiles">
|
|
182
208
|
<list>
|
|
183
|
-
<option value="$PROJECT_DIR$/spec/script_executor_spec.rb" />
|
|
184
|
-
<option value="$PROJECT_DIR$/lib/script_executor/script_executor.rb" />
|
|
185
|
-
<option value="$PROJECT_DIR$/lib/script_executor/version.rb" />
|
|
186
209
|
<option value="$PROJECT_DIR$/CHANGES" />
|
|
187
210
|
<option value="$PROJECT_DIR$/Rakefile" />
|
|
188
211
|
<option value="$PROJECT_DIR$/Gemfile" />
|
|
212
|
+
<option value="$PROJECT_DIR$/lib/script_executor/version.rb" />
|
|
213
|
+
<option value="$PROJECT_DIR$/lib/script_executor.rb" />
|
|
214
|
+
<option value="$PROJECT_DIR$/lib/script_executor/script_executor.rb" />
|
|
215
|
+
<option value="$PROJECT_DIR$/spec/script_executor_spec.rb" />
|
|
216
|
+
<option value="$PROJECT_DIR$/lib/script_executor/executable.rb" />
|
|
189
217
|
</list>
|
|
190
218
|
</option>
|
|
191
219
|
</component>
|
|
192
220
|
<component name="ProjectFrameBounds">
|
|
193
|
-
<option name="x" value="
|
|
194
|
-
<option name="y" value="
|
|
195
|
-
<option name="width" value="
|
|
196
|
-
<option name="height" value="
|
|
221
|
+
<option name="x" value="262" />
|
|
222
|
+
<option name="y" value="33" />
|
|
223
|
+
<option name="width" value="1613" />
|
|
224
|
+
<option name="height" value="1087" />
|
|
197
225
|
</component>
|
|
198
226
|
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
|
199
227
|
<OptionsSetting value="true" id="Add" />
|
|
@@ -221,6 +249,7 @@
|
|
|
221
249
|
<sortByType />
|
|
222
250
|
</navigator>
|
|
223
251
|
<panes>
|
|
252
|
+
<pane id="Scope" />
|
|
224
253
|
<pane id="ProjectPane">
|
|
225
254
|
<subPane>
|
|
226
255
|
<PATH>
|
|
@@ -228,10 +257,6 @@
|
|
|
228
257
|
<option name="myItemId" value="script_executor" />
|
|
229
258
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
230
259
|
</PATH_ELEMENT>
|
|
231
|
-
<PATH_ELEMENT>
|
|
232
|
-
<option name="myItemId" value="External Libraries" />
|
|
233
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ExternalLibrariesNode" />
|
|
234
|
-
</PATH_ELEMENT>
|
|
235
260
|
</PATH>
|
|
236
261
|
<PATH>
|
|
237
262
|
<PATH_ELEMENT>
|
|
@@ -291,19 +316,18 @@
|
|
|
291
316
|
</PATH>
|
|
292
317
|
</subPane>
|
|
293
318
|
</pane>
|
|
294
|
-
<pane id="Scope" />
|
|
295
319
|
</panes>
|
|
296
320
|
</component>
|
|
297
321
|
<component name="PropertiesComponent">
|
|
298
322
|
<property name="options.splitter.main.proportions" value="0.3" />
|
|
299
323
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
|
300
|
-
<property name="options.lastSelected" value="org.jetbrains.plugins.ruby.settings.RubyIdeSdkConfigurable" />
|
|
301
324
|
<property name="recentsLimit" value="5" />
|
|
325
|
+
<property name="options.lastSelected" value="org.jetbrains.plugins.ruby.settings.RubyIdeSdkConfigurable" />
|
|
302
326
|
<property name="restartRequiresConfirmation" value="true" />
|
|
303
|
-
<property name="options.searchVisible" value="true" />
|
|
304
327
|
<property name="options.splitter.details.proportions" value="0.2" />
|
|
328
|
+
<property name="options.searchVisible" value="true" />
|
|
305
329
|
</component>
|
|
306
|
-
<component name="RunManager" selected="
|
|
330
|
+
<component name="RunManager" selected="RSpec.script_executor_spec">
|
|
307
331
|
<configuration default="false" name="ScriptExecutor should execute commands from :script parameter" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
308
332
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
309
333
|
<module name="script_executor" />
|
|
@@ -373,6 +397,39 @@
|
|
|
373
397
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
374
398
|
<method />
|
|
375
399
|
</configuration>
|
|
400
|
+
<configuration default="false" name="script_executor_spec" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
|
401
|
+
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
402
|
+
<module name="script_executor" />
|
|
403
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
404
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$/spec" />
|
|
405
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
406
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
407
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
408
|
+
<envs>
|
|
409
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
|
410
|
+
</envs>
|
|
411
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
|
412
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
413
|
+
<COVERAGE_PATTERN ENABLED="true">
|
|
414
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
415
|
+
</COVERAGE_PATTERN>
|
|
416
|
+
</EXTENSION>
|
|
417
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
418
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
419
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/script_executor_spec.rb" />
|
|
420
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
|
421
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
|
422
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
|
423
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
424
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
|
425
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
426
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
|
427
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
428
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
429
|
+
<RunnerSettings RunnerId="RubyRunner" />
|
|
430
|
+
<ConfigurationWrapper RunnerId="RubyRunner" />
|
|
431
|
+
<method />
|
|
432
|
+
</configuration>
|
|
376
433
|
<configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
|
|
377
434
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
|
378
435
|
<module name="" />
|
|
@@ -402,6 +459,50 @@
|
|
|
402
459
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
403
460
|
<method />
|
|
404
461
|
</configuration>
|
|
462
|
+
<configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
|
|
463
|
+
<module name="" />
|
|
464
|
+
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
465
|
+
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
|
|
466
|
+
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
467
|
+
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
468
|
+
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
|
469
|
+
<envs />
|
|
470
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
471
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
472
|
+
<COVERAGE_PATTERN ENABLED="true">
|
|
473
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
474
|
+
</COVERAGE_PATTERN>
|
|
475
|
+
</EXTENSION>
|
|
476
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
477
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
|
|
478
|
+
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
|
479
|
+
<method />
|
|
480
|
+
</configuration>
|
|
481
|
+
<configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
|
|
482
|
+
<predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
|
|
483
|
+
<module name="" />
|
|
484
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
485
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
|
|
486
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
487
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
488
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
489
|
+
<envs />
|
|
490
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
491
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
492
|
+
<COVERAGE_PATTERN ENABLED="true">
|
|
493
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
494
|
+
</COVERAGE_PATTERN>
|
|
495
|
+
</EXTENSION>
|
|
496
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
|
497
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
498
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
|
|
499
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
|
|
500
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
|
|
501
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
502
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
503
|
+
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
|
504
|
+
<method />
|
|
505
|
+
</configuration>
|
|
405
506
|
<configuration default="true" type="RubyRemoteDebugConfigurationType" factoryName="Ruby remote debug">
|
|
406
507
|
<RUBY_REMOTE_DEBUG_CONFIG NAME="REMOTE_HOST" VALUE="localhost" />
|
|
407
508
|
<RUBY_REMOTE_DEBUG_CONFIG NAME="PORT" VALUE="1234" />
|
|
@@ -420,15 +521,18 @@
|
|
|
420
521
|
<ConfigurationWrapper RunnerId="RubyRemoteDebugRunner" />
|
|
421
522
|
<method />
|
|
422
523
|
</configuration>
|
|
423
|
-
<list size="
|
|
424
|
-
<item index="0" class="java.lang.String" itemvalue="
|
|
425
|
-
<item index="1" class="java.lang.String" itemvalue="RSpec.ScriptExecutor should execute commands
|
|
426
|
-
<item index="2" class="java.lang.String" itemvalue="
|
|
524
|
+
<list size="4">
|
|
525
|
+
<item index="0" class="java.lang.String" itemvalue="Ruby remote debug.remote" />
|
|
526
|
+
<item index="1" class="java.lang.String" itemvalue="RSpec.ScriptExecutor should execute commands from :script parameter" />
|
|
527
|
+
<item index="2" class="java.lang.String" itemvalue="RSpec.ScriptExecutor should execute commands locally from the block of code as sudo" />
|
|
528
|
+
<item index="3" class="java.lang.String" itemvalue="RSpec.script_executor_spec" />
|
|
427
529
|
</list>
|
|
428
530
|
<recent_temporary>
|
|
429
|
-
<list size="
|
|
430
|
-
<item index="0" class="java.lang.String" itemvalue="RSpec.
|
|
431
|
-
<item index="1" class="java.lang.String" itemvalue="RSpec.
|
|
531
|
+
<list size="4">
|
|
532
|
+
<item index="0" class="java.lang.String" itemvalue="RSpec.script_executor_spec" />
|
|
533
|
+
<item index="1" class="java.lang.String" itemvalue="RSpec.script_executor_spec" />
|
|
534
|
+
<item index="2" class="java.lang.String" itemvalue="RSpec.ScriptExecutor should execute commands from :script parameter" />
|
|
535
|
+
<item index="3" class="java.lang.String" itemvalue="RSpec.ScriptExecutor should execute commands locally from the block of code as sudo" />
|
|
432
536
|
</list>
|
|
433
537
|
</recent_temporary>
|
|
434
538
|
</component>
|
|
@@ -442,27 +546,27 @@
|
|
|
442
546
|
<servers />
|
|
443
547
|
</component>
|
|
444
548
|
<component name="ToolWindowManager">
|
|
445
|
-
<frame x="
|
|
446
|
-
<editor active="
|
|
549
|
+
<frame x="262" y="33" width="1613" height="1087" extended-state="0" />
|
|
550
|
+
<editor active="false" />
|
|
447
551
|
<layout>
|
|
448
|
-
<window_info id="
|
|
449
|
-
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
|
552
|
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.36161616" sideWeight="0.9955329" order="7" side_tool="false" content_ui="tabs" />
|
|
450
553
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
|
451
|
-
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="
|
|
554
|
+
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
452
555
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
|
453
|
-
<window_info id="Project" active="
|
|
454
|
-
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="
|
|
455
|
-
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="
|
|
456
|
-
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="
|
|
457
|
-
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.
|
|
458
|
-
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="
|
|
556
|
+
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22463305" sideWeight="0.63838387" order="0" side_tool="false" content_ui="combo" />
|
|
557
|
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3989071" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
558
|
+
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
|
559
|
+
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
|
560
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32525253" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
|
561
|
+
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
459
562
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
|
460
563
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
461
|
-
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
462
564
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
565
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
566
|
+
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32925683" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
463
567
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
464
|
-
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
|
465
568
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
|
569
|
+
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
|
466
570
|
</layout>
|
|
467
571
|
</component>
|
|
468
572
|
<component name="VcsContentAnnotationSettings">
|
|
@@ -517,21 +621,17 @@
|
|
|
517
621
|
</component>
|
|
518
622
|
<component name="XDebuggerManager">
|
|
519
623
|
<breakpoint-manager>
|
|
520
|
-
<breakpoints>
|
|
521
|
-
<line-breakpoint enabled="true" type="ruby-line">
|
|
522
|
-
<url>file://$PROJECT_DIR$/spec/script_executor_spec.rb</url>
|
|
523
|
-
<line>42</line>
|
|
524
|
-
</line-breakpoint>
|
|
525
|
-
<line-breakpoint enabled="true" type="ruby-line">
|
|
526
|
-
<url>file://$PROJECT_DIR$/lib/script_executor/script_executor.rb</url>
|
|
527
|
-
<line>31</line>
|
|
528
|
-
<option name="timeStamp" value="1" />
|
|
529
|
-
</line-breakpoint>
|
|
530
|
-
</breakpoints>
|
|
531
624
|
<option name="time" value="2" />
|
|
532
625
|
</breakpoint-manager>
|
|
533
626
|
</component>
|
|
534
627
|
<component name="editorHistoryManager">
|
|
628
|
+
<entry file="file://$PROJECT_DIR$/spec/script_executor_spec.rb">
|
|
629
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
630
|
+
<state line="45" column="14" selection-start="1012" selection-end="1012" vertical-scroll-proportion="0.0">
|
|
631
|
+
<folding />
|
|
632
|
+
</state>
|
|
633
|
+
</provider>
|
|
634
|
+
</entry>
|
|
535
635
|
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
|
536
636
|
<provider selected="true" editor-type-id="text-editor">
|
|
537
637
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
|
@@ -546,44 +646,87 @@
|
|
|
546
646
|
</state>
|
|
547
647
|
</provider>
|
|
548
648
|
</entry>
|
|
549
|
-
<entry file="file://$PROJECT_DIR$/
|
|
649
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor/script_executor.rb">
|
|
550
650
|
<provider selected="true" editor-type-id="text-editor">
|
|
551
|
-
<state line="
|
|
651
|
+
<state line="159" column="32" selection-start="3474" selection-end="3474" vertical-scroll-proportion="0.0">
|
|
552
652
|
<folding />
|
|
553
653
|
</state>
|
|
554
654
|
</provider>
|
|
555
655
|
</entry>
|
|
556
|
-
<entry file="file://$PROJECT_DIR$/lib/script_executor/
|
|
656
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor/version.rb">
|
|
557
657
|
<provider selected="true" editor-type-id="text-editor">
|
|
558
|
-
<state line="
|
|
658
|
+
<state line="1" column="18" selection-start="40" selection-end="40" vertical-scroll-proportion="0.0">
|
|
559
659
|
<folding />
|
|
560
660
|
</state>
|
|
561
661
|
</provider>
|
|
562
662
|
</entry>
|
|
563
|
-
<entry file="file://$PROJECT_DIR$/
|
|
663
|
+
<entry file="file://$PROJECT_DIR$/Rakefile">
|
|
564
664
|
<provider selected="true" editor-type-id="text-editor">
|
|
565
|
-
<state line="
|
|
665
|
+
<state line="31" column="3" selection-start="675" selection-end="675" vertical-scroll-proportion="0.0" />
|
|
666
|
+
</provider>
|
|
667
|
+
</entry>
|
|
668
|
+
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
669
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
670
|
+
<state line="8" column="24" selection-start="120" selection-end="120" vertical-scroll-proportion="0.0">
|
|
566
671
|
<folding />
|
|
567
672
|
</state>
|
|
568
673
|
</provider>
|
|
569
674
|
</entry>
|
|
675
|
+
<entry file="file://$PROJECT_DIR$/CHANGES">
|
|
676
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
677
|
+
<state line="9" column="43" selection-start="154" selection-end="154" vertical-scroll-proportion="0.0" />
|
|
678
|
+
</provider>
|
|
679
|
+
</entry>
|
|
680
|
+
<entry file="file://$PROJECT_DIR$/Rakefile">
|
|
681
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
682
|
+
<state line="31" column="3" selection-start="675" selection-end="675" vertical-scroll-proportion="0.7178003" />
|
|
683
|
+
</provider>
|
|
684
|
+
</entry>
|
|
570
685
|
<entry file="file://$PROJECT_DIR$/lib/script_executor/version.rb">
|
|
571
686
|
<provider selected="true" editor-type-id="text-editor">
|
|
572
|
-
<state line="1" column="18" selection-start="40" selection-end="40" vertical-scroll-proportion="0.
|
|
687
|
+
<state line="1" column="18" selection-start="40" selection-end="40" vertical-scroll-proportion="0.023154847">
|
|
573
688
|
<folding />
|
|
574
689
|
</state>
|
|
575
690
|
</provider>
|
|
576
691
|
</entry>
|
|
577
|
-
<entry file="file://$PROJECT_DIR$/
|
|
692
|
+
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
|
578
693
|
<provider selected="true" editor-type-id="text-editor">
|
|
579
|
-
<state line="
|
|
694
|
+
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
|
695
|
+
<folding />
|
|
696
|
+
</state>
|
|
697
|
+
</provider>
|
|
698
|
+
</entry>
|
|
699
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor/script_executor.rb">
|
|
700
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
701
|
+
<state line="3" column="0" selection-start="43" selection-end="43" vertical-scroll-proportion="0.0">
|
|
580
702
|
<folding />
|
|
581
703
|
</state>
|
|
582
704
|
</provider>
|
|
583
705
|
</entry>
|
|
584
706
|
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
585
707
|
<provider selected="true" editor-type-id="text-editor">
|
|
586
|
-
<state line="8" column="24" selection-start="120" selection-end="120" vertical-scroll-proportion="0.
|
|
708
|
+
<state line="8" column="24" selection-start="120" selection-end="120" vertical-scroll-proportion="0.0">
|
|
709
|
+
<folding />
|
|
710
|
+
</state>
|
|
711
|
+
</provider>
|
|
712
|
+
</entry>
|
|
713
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor.rb">
|
|
714
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
715
|
+
<state line="2" column="41" selection-start="96" selection-end="96" vertical-scroll-proportion="0.052980132">
|
|
716
|
+
<folding />
|
|
717
|
+
</state>
|
|
718
|
+
</provider>
|
|
719
|
+
</entry>
|
|
720
|
+
<entry file="file://$PROJECT_DIR$/spec/script_executor_spec.rb">
|
|
721
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
722
|
+
<state line="9" column="37" selection-start="208" selection-end="208" vertical-scroll-proportion="-5.5384617">
|
|
723
|
+
<folding />
|
|
724
|
+
</state>
|
|
725
|
+
</provider>
|
|
726
|
+
</entry>
|
|
727
|
+
<entry file="file://$PROJECT_DIR$/lib/script_executor/executable.rb">
|
|
728
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
729
|
+
<state line="108" column="43" selection-start="2606" selection-end="2606" vertical-scroll-proportion="2.860927">
|
|
587
730
|
<folding />
|
|
588
731
|
</state>
|
|
589
732
|
</provider>
|
data/lib/executable.rb
ADDED
data/lib/script_executor.rb
CHANGED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
require 'net/ssh'
|
|
2
|
+
require "highline/import"
|
|
3
|
+
|
|
4
|
+
module Executable
|
|
5
|
+
|
|
6
|
+
def execute params={}, &code
|
|
7
|
+
if params.class != Hash
|
|
8
|
+
simple_commands = commands_from_object(params)
|
|
9
|
+
params = {}
|
|
10
|
+
script = simple_commands
|
|
11
|
+
else
|
|
12
|
+
script = params[:script]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
commands = locate_commands script, &code
|
|
16
|
+
|
|
17
|
+
if commands.nil?
|
|
18
|
+
puts "No commands were provided!"
|
|
19
|
+
return
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
commands = sudo(commands) if params[:sudo]
|
|
23
|
+
|
|
24
|
+
remote = params[:remote]
|
|
25
|
+
domain = params[:domain]
|
|
26
|
+
user = params[:user]
|
|
27
|
+
password = params[:password]
|
|
28
|
+
identity_file = params[:identity_file]
|
|
29
|
+
capture_output = params[:capture_output]
|
|
30
|
+
simulate = params[:simulate]
|
|
31
|
+
|
|
32
|
+
print_execution commands, remote, domain, user, identity_file, simulate
|
|
33
|
+
|
|
34
|
+
printer = Proc.new { |data| print data }
|
|
35
|
+
|
|
36
|
+
unless simulate
|
|
37
|
+
if remote
|
|
38
|
+
execute_ssh commands, domain, user, password, identity_file, printer, capture_output
|
|
39
|
+
else
|
|
40
|
+
execute_command commands, password, printer, capture_output
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def print_execution commands, remote, domain, user, identity_file, simulate
|
|
48
|
+
if remote
|
|
49
|
+
ssh_command = ssh_command(domain, user, identity_file)
|
|
50
|
+
|
|
51
|
+
if simulate
|
|
52
|
+
puts "Remote script: '#{ssh_command}'"
|
|
53
|
+
puts "-------"
|
|
54
|
+
print_commands commands
|
|
55
|
+
puts "-------"
|
|
56
|
+
else
|
|
57
|
+
puts "Remote execution on: '#{ssh_command}'"
|
|
58
|
+
puts "-------"
|
|
59
|
+
print_commands commands
|
|
60
|
+
puts "-------"
|
|
61
|
+
end
|
|
62
|
+
else
|
|
63
|
+
if simulate
|
|
64
|
+
puts "Script:"
|
|
65
|
+
puts "-------"
|
|
66
|
+
print_commands commands
|
|
67
|
+
puts "-------"
|
|
68
|
+
else
|
|
69
|
+
puts "Local execution:"
|
|
70
|
+
puts "-------"
|
|
71
|
+
print_commands(commands)
|
|
72
|
+
puts "-------"
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def print_commands commands
|
|
78
|
+
lines = StringIO.new commands
|
|
79
|
+
|
|
80
|
+
lines.each_line do |line|
|
|
81
|
+
puts line
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def execute_command commands, password, printer, capture_output=false
|
|
86
|
+
result = capture_output ? [] : nil
|
|
87
|
+
|
|
88
|
+
commands = commands + inline_password(password) if password
|
|
89
|
+
|
|
90
|
+
IO.popen(commands).each_line do |line|
|
|
91
|
+
if capture_output
|
|
92
|
+
result << line.chomp
|
|
93
|
+
else
|
|
94
|
+
printer.call(line)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
result.join("\n") if capture_output
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def inline_password password
|
|
102
|
+
password ? "<<EOF\n#{password}\nEOF" : ""
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def execute_ssh commands, domain, user, password, identity_file, printer, capture_output=false
|
|
106
|
+
if password.nil?
|
|
107
|
+
password = ask("Enter password for #{user}: ") { |q| q.echo = '*' }
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
result = capture_output ? [] : nil
|
|
111
|
+
|
|
112
|
+
Net::SSH.start(domain, user, :password => password) do |session|
|
|
113
|
+
session.exec "#{commands}" do |channel, _, data|
|
|
114
|
+
if data =~ /^\[sudo\] password for user:/ || data =~ /sudo password:/
|
|
115
|
+
#puts "Password request"
|
|
116
|
+
channel.request_pty # <- problem must be here.
|
|
117
|
+
channel.send_data password + "\n"
|
|
118
|
+
else
|
|
119
|
+
#buffer << data.chomp
|
|
120
|
+
if capture_output
|
|
121
|
+
result << data.chomp
|
|
122
|
+
else
|
|
123
|
+
printer.call(data)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# run the aggregated event loop
|
|
129
|
+
session.loop
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
result.join("\n") if capture_output
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def locate_commands script, &code
|
|
136
|
+
if block_given?
|
|
137
|
+
commands_from_block &code
|
|
138
|
+
elsif script
|
|
139
|
+
commands_from_object script
|
|
140
|
+
else
|
|
141
|
+
nil
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def commands_from_block &code
|
|
146
|
+
s1 = code.call.split(/\n/)
|
|
147
|
+
s2 = s1.reject {|el| el.strip.size == 0 || el.empty?}
|
|
148
|
+
s3 = s2.collect {|el| el.strip}
|
|
149
|
+
|
|
150
|
+
s3.join("\n")
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def commands_from_object object
|
|
154
|
+
if object.class == String
|
|
155
|
+
object
|
|
156
|
+
elsif object.class == Array
|
|
157
|
+
object.join("\n")
|
|
158
|
+
else
|
|
159
|
+
object
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def ssh_command domain, user, identity_file
|
|
164
|
+
cmd = user.nil? ? domain : "#{user}@#{domain}"
|
|
165
|
+
|
|
166
|
+
cmd << " -i #{identity_file}" if identity_file
|
|
167
|
+
|
|
168
|
+
#cmd << " -t -t"
|
|
169
|
+
|
|
170
|
+
"ssh #{cmd}"
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def sudo commands
|
|
174
|
+
"sudo -S -p 'sudo password: ' -s -- '#{commands}'"
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
end
|
|
@@ -1,163 +1,6 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'net/ssh'
|
|
3
|
-
require "highline/import"
|
|
1
|
+
require 'executable'
|
|
4
2
|
|
|
5
3
|
class ScriptExecutor
|
|
6
|
-
|
|
7
|
-
def execute params={}, &code
|
|
8
|
-
if params.class != Hash
|
|
9
|
-
simple_commands = commands_from_object(params)
|
|
10
|
-
params = {}
|
|
11
|
-
params[:script] = simple_commands
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
remote = params.delete(:remote)
|
|
15
|
-
|
|
16
|
-
remote ? remote_execute(params, &code) : local_execute(params, &code)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def local_execute params={}, &code
|
|
20
|
-
simulate = params.delete(:simulate)
|
|
21
|
-
sudo = params.delete(:sudo)
|
|
22
|
-
|
|
23
|
-
commands = locate_commands params[:script], &code
|
|
24
|
-
|
|
25
|
-
if commands.nil?
|
|
26
|
-
puts "No commands were provided!"
|
|
27
|
-
return
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
commands = sudo(commands) if sudo
|
|
31
|
-
|
|
32
|
-
if simulate
|
|
33
|
-
puts "Script:"
|
|
34
|
-
puts "-------"
|
|
35
|
-
print_commands commands
|
|
36
|
-
puts "-------"
|
|
37
|
-
else
|
|
38
|
-
puts "Local execution:"
|
|
39
|
-
puts "-------"
|
|
40
|
-
print_commands(commands)
|
|
41
|
-
puts "-------"
|
|
42
|
-
execute_command commands, params[:capture_output]
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def remote_execute params={}, &code
|
|
47
|
-
simulate = params.delete(:simulate)
|
|
48
|
-
sudo = params.delete(:sudo)
|
|
49
|
-
|
|
50
|
-
commands = locate_commands params[:script], &code
|
|
51
|
-
|
|
52
|
-
if commands.nil?
|
|
53
|
-
puts "No commands were provided!"
|
|
54
|
-
return
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
commands = sudo(commands) if sudo
|
|
58
|
-
|
|
59
|
-
ssh_command = ssh_command(params[:domain], params[:user], params[:identity_file])
|
|
60
|
-
|
|
61
|
-
if simulate
|
|
62
|
-
puts "Remote script: '#{ssh_command}'"
|
|
63
|
-
puts "-------"
|
|
64
|
-
print_commands commands
|
|
65
|
-
puts "-------"
|
|
66
|
-
else
|
|
67
|
-
puts "Remote execution on: '#{ssh_command}'"
|
|
68
|
-
puts "-------"
|
|
69
|
-
print_commands commands
|
|
70
|
-
puts "-------"
|
|
71
|
-
|
|
72
|
-
execute_ssh(params[:domain], params[:user], commands)
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
private
|
|
77
|
-
|
|
78
|
-
def print_commands commands
|
|
79
|
-
lines = StringIO.new commands
|
|
80
|
-
|
|
81
|
-
lines.each_line do |line|
|
|
82
|
-
puts line
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def execute_command commands, capture_output=false
|
|
87
|
-
if capture_output
|
|
88
|
-
buffer = []
|
|
89
|
-
|
|
90
|
-
IO.popen(commands).each_line do |line|
|
|
91
|
-
buffer << line.chomp
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
buffer.join("\n")
|
|
95
|
-
else
|
|
96
|
-
IO.popen(commands).each_line do |line|
|
|
97
|
-
print line
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def execute_ssh domain, user, commands
|
|
103
|
-
password = ask("Enter password for #{user}: ") { |q| q.echo = '*' }
|
|
104
|
-
|
|
105
|
-
Net::SSH.start(domain, user, :password => password) do |session|
|
|
106
|
-
session.exec "#{commands}" do |channel, _, data|
|
|
107
|
-
if data =~ /^\[sudo\] password for user:/ || data =~ /sudo password:/
|
|
108
|
-
#puts "Password request"
|
|
109
|
-
channel.request_pty # <- problem must be here.
|
|
110
|
-
channel.send_data password + "\n"
|
|
111
|
-
else
|
|
112
|
-
print data
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# run the aggregated event loop
|
|
117
|
-
session.loop
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
def locate_commands script, &code
|
|
122
|
-
if block_given?
|
|
123
|
-
commands_from_block &code
|
|
124
|
-
elsif script
|
|
125
|
-
commands_from_object script
|
|
126
|
-
else
|
|
127
|
-
nil
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def commands_from_block &code
|
|
132
|
-
s1 = code.call.split(/\n/)
|
|
133
|
-
s2 = s1.reject {|el| el.strip.size == 0 || el.empty?}
|
|
134
|
-
s3 = s2.collect {|el| el.strip}
|
|
135
|
-
|
|
136
|
-
s3.join("\n")
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def commands_from_object object
|
|
140
|
-
if object.class == String
|
|
141
|
-
object
|
|
142
|
-
elsif object.class == Array
|
|
143
|
-
object.join("\n")
|
|
144
|
-
else
|
|
145
|
-
object
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
def ssh_command domain, user, identity_file
|
|
150
|
-
cmd = user.nil? ? domain : "#{user}@#{domain}"
|
|
151
|
-
|
|
152
|
-
cmd << " -i #{identity_file}" if identity_file
|
|
153
|
-
|
|
154
|
-
#cmd << " -t -t"
|
|
155
|
-
|
|
156
|
-
"ssh #{cmd}"
|
|
157
|
-
end
|
|
158
|
-
|
|
159
|
-
def sudo commands
|
|
160
|
-
"sudo -S -p 'sudo password: ' -s -- '#{commands}'"
|
|
161
|
-
end
|
|
4
|
+
include Executable
|
|
162
5
|
|
|
163
6
|
end
|
|
@@ -3,64 +3,87 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
|
|
|
3
3
|
require 'script_executor'
|
|
4
4
|
|
|
5
5
|
describe ScriptExecutor do
|
|
6
|
-
server_info = {
|
|
7
|
-
:simulate => false,
|
|
8
|
-
:domain => "localhost",
|
|
9
|
-
:user => "user",
|
|
10
|
-
:remote => true
|
|
11
|
-
}
|
|
12
6
|
|
|
13
7
|
subject { ScriptExecutor.new }
|
|
14
8
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
#result.should include "file_utils/version.rb"
|
|
9
|
+
before :all do
|
|
10
|
+
@password ||= ask("Enter password for #{ENV['USER']}: ") { |q| q.echo = '*' }
|
|
19
11
|
end
|
|
20
12
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
describe "local execution" do
|
|
14
|
+
before :all do
|
|
15
|
+
@local_info = {
|
|
16
|
+
:capture_output => true
|
|
17
|
+
}
|
|
26
18
|
end
|
|
27
|
-
end
|
|
28
19
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
end
|
|
20
|
+
it "should execute commands locally from :script parameter" do
|
|
21
|
+
result = subject.execute @local_info.merge(:script => "whoami")
|
|
32
22
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
result.should == ENV['USER']
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should execute commands locally from the block of code" do
|
|
27
|
+
result = subject.execute @local_info do
|
|
28
|
+
%Q(
|
|
29
|
+
whoami
|
|
30
|
+
whoami
|
|
38
31
|
)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
result.to_s.should == "#{ENV['USER']}\n#{ENV['USER']}"
|
|
39
35
|
end
|
|
40
|
-
end
|
|
41
36
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
it "should execute commands locally from the block of code as sudo" do
|
|
38
|
+
result = subject.execute @local_info.merge(:sudo => true, :password => @password) do
|
|
39
|
+
%Q(
|
|
40
|
+
whoami
|
|
41
|
+
whoami
|
|
47
42
|
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
puts "2 #{@password}"
|
|
46
|
+
result.to_s.should == "root\nroot"
|
|
48
47
|
end
|
|
49
48
|
end
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
describe "remote execution" do
|
|
51
|
+
before :all do
|
|
52
|
+
@remote_info = {
|
|
53
|
+
:simulate => false,
|
|
54
|
+
:domain => "localhost",
|
|
55
|
+
:user => ENV['USER'],
|
|
56
|
+
:password => @password,
|
|
57
|
+
:remote => true,
|
|
58
|
+
:capture_output => true
|
|
59
|
+
}
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "should execute commands from :script parameter" do
|
|
63
|
+
result = subject.execute @remote_info.merge(:script => "whoami")
|
|
64
|
+
|
|
65
|
+
result.should == ENV['USER']
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "should execute commands from the block of code" do
|
|
69
|
+
result = subject.execute @remote_info do
|
|
70
|
+
%Q(
|
|
71
|
+
whoami
|
|
55
72
|
)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
result.should == ENV['USER']
|
|
56
76
|
end
|
|
57
|
-
end
|
|
58
77
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/
|
|
78
|
+
it "should execute sudo command" do
|
|
79
|
+
result = subject.execute @remote_info.merge(:sudo => true, :password => @password) do
|
|
80
|
+
%Q(
|
|
81
|
+
~/apache-tomcat-7.0.34/bin/shutdown.sh
|
|
63
82
|
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
p result
|
|
64
86
|
end
|
|
65
87
|
end
|
|
88
|
+
|
|
66
89
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: script_executor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-12-
|
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: highline
|
|
@@ -100,7 +100,9 @@ files:
|
|
|
100
100
|
- LICENSE
|
|
101
101
|
- README.md
|
|
102
102
|
- Rakefile
|
|
103
|
+
- lib/executable.rb
|
|
103
104
|
- lib/script_executor.rb
|
|
105
|
+
- lib/script_executor/executable.rb
|
|
104
106
|
- lib/script_executor/script_executor.rb
|
|
105
107
|
- lib/script_executor/version.rb
|
|
106
108
|
- script_executor.gemspec
|