designshell 0.0.1
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/.gitignore +18 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/codeStyleSettings.xml +13 -0
- data/.idea/compiler.xml +25 -0
- data/.idea/copyright/profiles_settings.xml +5 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +11 -0
- data/.idea/modules.xml +11 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/vcs.xml +9 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +196 -0
- data/LICENSE +22 -0
- data/README.md +35 -0
- data/README.rdoc +6 -0
- data/Rakefile +46 -0
- data/bin/designshelld.example.sh +5 -0
- data/bin/designshelld.example2.sh +3 -0
- data/bin/designshellserver +22 -0
- data/bin/ds +177 -0
- data/designshell.gemspec +40 -0
- data/designshell.iml +84 -0
- data/designshell.rdoc +5 -0
- data/features/designshell.feature +8 -0
- data/features/step_definitions/designshell_steps.rb +6 -0
- data/features/support/env.rb +15 -0
- data/lib/buzzcore_mods.rb +19 -0
- data/lib/designshell/context.rb +48 -0
- data/lib/designshell/core.rb +78 -0
- data/lib/designshell/deploy_plan.rb +40 -0
- data/lib/designshell/key_chain.rb +40 -0
- data/lib/designshell/repo.rb +112 -0
- data/lib/designshell/repo_server.rb +25 -0
- data/lib/designshell/site_client.rb +141 -0
- data/lib/designshell/utils.rb +18 -0
- data/lib/designshell/version.rb +3 -0
- data/lib/designshell.rb +19 -0
- data/lib/designshellserver/command.rb +180 -0
- data/lib/designshellserver/core.rb +41 -0
- data/lib/designshellserver.rb +17 -0
- data/spec/KeyChain_spec.rb +94 -0
- data/spec/RepoServer_spec.rb +54 -0
- data/spec/Repo_spec.rb +105 -0
- data/spec/build_spec.rb +29 -0
- data/spec/client_to_server_spec.rb +111 -0
- data/spec/designshell_context_spec.rb +18 -0
- data/spec/designshell_core_spec.rb +45 -0
- data/spec/rspec_helper.rb +8 -0
- data/spec/server/deploy_spec.rb +210 -0
- data/spec/server/dummy_spec.rb +52 -0
- data/spec/site_client_spec.rb +90 -0
- data/test/default_test.rb +14 -0
- data/test/test_helper.rb +9 -0
- data/testmart.iml +9 -0
- metadata +390 -0
data/.gitignore
ADDED
data/.idea/.name
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
designshell
|
data/.idea/.rakeTasks
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Settings><!--This file was automatically generated by Ruby plugin.
|
3
|
+
You are allowed to:
|
4
|
+
1. Remove rake task
|
5
|
+
2. Add existing rake tasks
|
6
|
+
To add existing rake tasks automatically delete this file and reload the project.
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake" /></Settings>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ProjectCodeStyleSettingsManager">
|
4
|
+
<option name="PER_PROJECT_SETTINGS">
|
5
|
+
<value>
|
6
|
+
<XML>
|
7
|
+
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
8
|
+
</XML>
|
9
|
+
</value>
|
10
|
+
</option>
|
11
|
+
</component>
|
12
|
+
</project>
|
13
|
+
|
data/.idea/compiler.xml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="CompilerConfiguration">
|
4
|
+
<option name="DEFAULT_COMPILER" value="Javac" />
|
5
|
+
<resourceExtensions />
|
6
|
+
<wildcardResourcePatterns>
|
7
|
+
<entry name="?*.properties" />
|
8
|
+
<entry name="?*.xml" />
|
9
|
+
<entry name="?*.gif" />
|
10
|
+
<entry name="?*.png" />
|
11
|
+
<entry name="?*.jpeg" />
|
12
|
+
<entry name="?*.jpg" />
|
13
|
+
<entry name="?*.html" />
|
14
|
+
<entry name="?*.dtd" />
|
15
|
+
<entry name="?*.tld" />
|
16
|
+
<entry name="?*.ftl" />
|
17
|
+
</wildcardResourcePatterns>
|
18
|
+
<annotationProcessing>
|
19
|
+
<profile default="true" name="Default" enabled="false">
|
20
|
+
<processorPath useClasspath="true" />
|
21
|
+
</profile>
|
22
|
+
</annotationProcessing>
|
23
|
+
</component>
|
24
|
+
</project>
|
25
|
+
|
data/.idea/encodings.xml
ADDED
data/.idea/misc.xml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="IdProvider" IDEtalkID="103CE2DF1B7BFC2B4246041ABE713922" />
|
4
|
+
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="RVM: ruby-1.8.7-p358 [dash]" project-jdk-type="RUBY_SDK">
|
5
|
+
<output url="file://$PROJECT_DIR$/out" />
|
6
|
+
</component>
|
7
|
+
<component name="SvnBranchConfigurationManager">
|
8
|
+
<option name="mySupportsUserInfoFilter" value="true" />
|
9
|
+
</component>
|
10
|
+
</project>
|
11
|
+
|
data/.idea/modules.xml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ProjectModuleManager">
|
4
|
+
<modules>
|
5
|
+
<module fileurl="file://$REPOS$/Buzzware/13/dash-dev/dash-dev.iml" filepath="$REPOS$/Buzzware/13/dash-dev/dash-dev.iml" />
|
6
|
+
<module fileurl="file://$PROJECT_DIR$/designshell.iml" filepath="$PROJECT_DIR$/designshell.iml" />
|
7
|
+
<module fileurl="file://$PROJECT_DIR$/testmart.iml" filepath="$PROJECT_DIR$/testmart.iml" />
|
8
|
+
</modules>
|
9
|
+
</component>
|
10
|
+
</project>
|
11
|
+
|
data/.idea/vcs.xml
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="VcsDirectoryMappings">
|
4
|
+
<mapping directory="" vcs="Git" />
|
5
|
+
<mapping directory="$REPOS$/Buzzware/13/dash-dev" vcs="svn" />
|
6
|
+
<mapping directory="$REPOS$/testmart" vcs="Git" />
|
7
|
+
</component>
|
8
|
+
</project>
|
9
|
+
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
designshell (0.0.1)
|
5
|
+
POpen4
|
6
|
+
bitbucket_rest_api
|
7
|
+
buzzcore
|
8
|
+
git
|
9
|
+
gli (= 2.5.0)
|
10
|
+
highline
|
11
|
+
json
|
12
|
+
middleman
|
13
|
+
net-ssh
|
14
|
+
net_dav
|
15
|
+
osx_keychain
|
16
|
+
termios
|
17
|
+
|
18
|
+
GEM
|
19
|
+
remote: http://rubygems.org/
|
20
|
+
specs:
|
21
|
+
POpen4 (0.1.4)
|
22
|
+
Platform (>= 0.4.0)
|
23
|
+
open4
|
24
|
+
Platform (0.4.0)
|
25
|
+
RubyInline (3.12.0)
|
26
|
+
ZenTest (~> 4.3)
|
27
|
+
ZenTest (4.8.3)
|
28
|
+
activesupport (3.2.11)
|
29
|
+
i18n (~> 0.6)
|
30
|
+
multi_json (~> 1.0)
|
31
|
+
aruba (0.5.1)
|
32
|
+
childprocess (~> 0.3.6)
|
33
|
+
cucumber (>= 1.1.1)
|
34
|
+
rspec-expectations (>= 2.7.0)
|
35
|
+
bitbucket_rest_api (0.1.1)
|
36
|
+
faraday (~> 0.8.1)
|
37
|
+
faraday_middleware (~> 0.8.1)
|
38
|
+
hashie (~> 1.2.0)
|
39
|
+
multi_json (~> 1.3)
|
40
|
+
nokogiri (~> 1.5.2)
|
41
|
+
simple_oauth
|
42
|
+
builder (3.1.4)
|
43
|
+
buzzcore (0.6.4)
|
44
|
+
POpen4
|
45
|
+
childprocess (0.3.6)
|
46
|
+
ffi (~> 1.0, >= 1.0.6)
|
47
|
+
chunky_png (1.2.7)
|
48
|
+
coffee-script (2.2.0)
|
49
|
+
coffee-script-source
|
50
|
+
execjs
|
51
|
+
coffee-script-source (1.3.3)
|
52
|
+
columnize (0.3.6)
|
53
|
+
compass (0.12.2)
|
54
|
+
chunky_png (~> 1.2)
|
55
|
+
fssm (>= 0.2.7)
|
56
|
+
sass (~> 3.1)
|
57
|
+
cucumber (1.2.1)
|
58
|
+
builder (>= 2.1.2)
|
59
|
+
diff-lcs (>= 1.1.3)
|
60
|
+
gherkin (~> 2.11.0)
|
61
|
+
json (>= 1.4.6)
|
62
|
+
diff-lcs (1.1.3)
|
63
|
+
execjs (1.4.0)
|
64
|
+
multi_json (~> 1.0)
|
65
|
+
faraday (0.8.4)
|
66
|
+
multipart-post (~> 1.1)
|
67
|
+
faraday_middleware (0.8.8)
|
68
|
+
faraday (>= 0.7.4, < 0.9)
|
69
|
+
ffi (1.3.1)
|
70
|
+
fssm (0.2.9)
|
71
|
+
gherkin (2.11.5)
|
72
|
+
json (>= 1.4.6)
|
73
|
+
git (1.2.5)
|
74
|
+
gli (2.5.0)
|
75
|
+
haml (3.1.7)
|
76
|
+
hashie (1.2.0)
|
77
|
+
highline (1.6.15)
|
78
|
+
hike (1.2.1)
|
79
|
+
http_router (0.10.2)
|
80
|
+
rack (>= 1.0.0)
|
81
|
+
url_mount (~> 0.2.1)
|
82
|
+
i18n (0.6.1)
|
83
|
+
json (1.7.6)
|
84
|
+
linecache (0.46)
|
85
|
+
rbx-require-relative (> 0.0.4)
|
86
|
+
listen (0.5.3)
|
87
|
+
maruku (0.6.1)
|
88
|
+
syntax (>= 1.0.0)
|
89
|
+
middleman (3.0.9)
|
90
|
+
middleman-core (= 3.0.9)
|
91
|
+
middleman-more (= 3.0.9)
|
92
|
+
middleman-sprockets (~> 3.0.6)
|
93
|
+
middleman-core (3.0.9)
|
94
|
+
activesupport (~> 3.2.6)
|
95
|
+
bundler (~> 1.1)
|
96
|
+
listen (~> 0.5.2)
|
97
|
+
rack (= 1.4.1)
|
98
|
+
rack-test (~> 0.6.1)
|
99
|
+
rb-fsevent (~> 0.9.1)
|
100
|
+
rb-inotify (~> 0.8.8)
|
101
|
+
thor (~> 0.15.4)
|
102
|
+
tilt (~> 1.3.1)
|
103
|
+
middleman-more (3.0.9)
|
104
|
+
coffee-script (~> 2.2.0)
|
105
|
+
coffee-script-source (~> 1.3.3)
|
106
|
+
compass (>= 0.12.2)
|
107
|
+
execjs (~> 1.4.0)
|
108
|
+
haml (>= 3.1.6)
|
109
|
+
i18n (~> 0.6.0)
|
110
|
+
maruku (~> 0.6.0)
|
111
|
+
middleman-core (= 3.0.9)
|
112
|
+
padrino-helpers (= 0.10.7)
|
113
|
+
sass (>= 3.1.20)
|
114
|
+
uglifier (~> 1.2.6)
|
115
|
+
middleman-sprockets (3.0.6)
|
116
|
+
middleman-more (>= 3.0.1)
|
117
|
+
sprockets (~> 2.1, < 2.5)
|
118
|
+
sprockets-sass (~> 0.9.0)
|
119
|
+
multi_json (1.5.0)
|
120
|
+
multipart-post (1.1.5)
|
121
|
+
net-ssh (2.6.3)
|
122
|
+
net_dav (0.5.0)
|
123
|
+
nokogiri (>= 1.3.0)
|
124
|
+
nokogiri (1.5.6)
|
125
|
+
open4 (1.3.0)
|
126
|
+
osx_keychain (1.0.0)
|
127
|
+
RubyInline (~> 3)
|
128
|
+
padrino-core (0.10.7)
|
129
|
+
activesupport (~> 3.2.0)
|
130
|
+
http_router (~> 0.10.2)
|
131
|
+
sinatra (~> 1.3.1)
|
132
|
+
thor (~> 0.15.2)
|
133
|
+
tilt (~> 1.3.0)
|
134
|
+
padrino-helpers (0.10.7)
|
135
|
+
i18n (~> 0.6)
|
136
|
+
padrino-core (= 0.10.7)
|
137
|
+
rack (1.4.1)
|
138
|
+
rack-protection (1.3.2)
|
139
|
+
rack
|
140
|
+
rack-test (0.6.2)
|
141
|
+
rack (>= 1.0)
|
142
|
+
rake (10.0.3)
|
143
|
+
rb-fsevent (0.9.3)
|
144
|
+
rb-inotify (0.8.8)
|
145
|
+
ffi (>= 0.5.0)
|
146
|
+
rbx-require-relative (0.0.9)
|
147
|
+
rdoc (3.12)
|
148
|
+
json (~> 1.4)
|
149
|
+
rspec (2.12.0)
|
150
|
+
rspec-core (~> 2.12.0)
|
151
|
+
rspec-expectations (~> 2.12.0)
|
152
|
+
rspec-mocks (~> 2.12.0)
|
153
|
+
rspec-core (2.12.2)
|
154
|
+
rspec-expectations (2.12.1)
|
155
|
+
diff-lcs (~> 1.1.3)
|
156
|
+
rspec-mocks (2.12.1)
|
157
|
+
ruby-debug (0.10.4)
|
158
|
+
columnize (>= 0.1)
|
159
|
+
ruby-debug-base (~> 0.10.4.0)
|
160
|
+
ruby-debug-base (0.10.4)
|
161
|
+
linecache (>= 0.3)
|
162
|
+
sass (3.2.5)
|
163
|
+
simple_oauth (0.2.0)
|
164
|
+
sinatra (1.3.3)
|
165
|
+
rack (~> 1.3, >= 1.3.6)
|
166
|
+
rack-protection (~> 1.2)
|
167
|
+
tilt (~> 1.3, >= 1.3.3)
|
168
|
+
sprockets (2.4.5)
|
169
|
+
hike (~> 1.2)
|
170
|
+
multi_json (~> 1.0)
|
171
|
+
rack (~> 1.0)
|
172
|
+
tilt (~> 1.1, != 1.3.0)
|
173
|
+
sprockets-sass (0.9.1)
|
174
|
+
sprockets (~> 2.0)
|
175
|
+
tilt (~> 1.1)
|
176
|
+
syntax (1.0.0)
|
177
|
+
termios (0.9.4)
|
178
|
+
thor (0.15.4)
|
179
|
+
tilt (1.3.3)
|
180
|
+
uglifier (1.2.7)
|
181
|
+
execjs (>= 0.3.0)
|
182
|
+
multi_json (~> 1.3)
|
183
|
+
url_mount (0.2.1)
|
184
|
+
rack
|
185
|
+
|
186
|
+
PLATFORMS
|
187
|
+
ruby
|
188
|
+
|
189
|
+
DEPENDENCIES
|
190
|
+
aruba
|
191
|
+
designshell!
|
192
|
+
rake
|
193
|
+
rdoc
|
194
|
+
rspec
|
195
|
+
rspec-core
|
196
|
+
ruby-debug
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Gary McGhee
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# Designshell
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'designshell'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install designshell
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
TODO: Write usage instructions here
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new Pull Request
|
30
|
+
|
31
|
+
|
32
|
+
install designshelld like this in ~/.ssh/authorized_keys2 :
|
33
|
+
|
34
|
+
command="/home/dashd/designshell/bin/designshelld.example.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3NzaC...
|
35
|
+
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require 'rake/clean'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'rubygems/package_task'
|
5
|
+
require "bundler/gem_tasks"
|
6
|
+
require 'rdoc/task'
|
7
|
+
require 'cucumber'
|
8
|
+
require 'cucumber/rake/task'
|
9
|
+
Rake::RDocTask.new do |rd|
|
10
|
+
rd.main = "README.rdoc"
|
11
|
+
rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
|
12
|
+
rd.title = 'Your application title'
|
13
|
+
end
|
14
|
+
|
15
|
+
spec = eval(File.read('designshell.gemspec'))
|
16
|
+
|
17
|
+
Gem::PackageTask.new(spec) do |pkg|
|
18
|
+
end
|
19
|
+
CUKE_RESULTS = 'results.html'
|
20
|
+
CLEAN << CUKE_RESULTS
|
21
|
+
desc 'Run features'
|
22
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
23
|
+
opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
|
24
|
+
opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
|
25
|
+
t.cucumber_opts = opts
|
26
|
+
t.fork = false
|
27
|
+
end
|
28
|
+
|
29
|
+
desc 'Run features tagged as work-in-progress (@wip)'
|
30
|
+
Cucumber::Rake::Task.new('features:wip') do |t|
|
31
|
+
tag_opts = ' --tags ~@pending'
|
32
|
+
tag_opts = ' --tags @wip'
|
33
|
+
t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
|
34
|
+
t.fork = false
|
35
|
+
end
|
36
|
+
|
37
|
+
task :cucumber => :features
|
38
|
+
task 'cucumber:wip' => 'features:wip'
|
39
|
+
task :wip => 'features:wip'
|
40
|
+
require 'rake/testtask'
|
41
|
+
Rake::TestTask.new do |t|
|
42
|
+
t.libs << "test"
|
43
|
+
t.test_files = FileList['test/*_test.rb']
|
44
|
+
end
|
45
|
+
|
46
|
+
task :default => [:test,:features]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#command = ENV['SSH_ORIGINAL_COMMAND']
|
4
|
+
#STDERR.write "user #{user} authorized\n"
|
5
|
+
|
6
|
+
require "rubygems"
|
7
|
+
|
8
|
+
require 'designshellserver'
|
9
|
+
|
10
|
+
#trap("SIGHUP") { abort }
|
11
|
+
|
12
|
+
context = DesignShell::Context.new({
|
13
|
+
:argv=>ARGV.clone,
|
14
|
+
:env=>ENV.clone,
|
15
|
+
:stdout=>$stdout,
|
16
|
+
:stdin=>$stdin,
|
17
|
+
:stderr=>$stderr,
|
18
|
+
:credentials=>Credentials.new('DesignShellServer')
|
19
|
+
})
|
20
|
+
core = DesignShellServer::Core.new(context)
|
21
|
+
core.run
|
22
|
+
|
data/bin/ds
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#begin # XXX: Remove this begin/rescue before distributing your app
|
3
|
+
require 'designshell'
|
4
|
+
#require 'ruby-debug';debugger
|
5
|
+
|
6
|
+
if ARGV.length==1 && ARGV[0].index(' ') # fix for intellij
|
7
|
+
parts = ARGV[0].split(' ')
|
8
|
+
ARGV[0] = parts.shift
|
9
|
+
ARGV.insert(-1,*parts)
|
10
|
+
end
|
11
|
+
#rescue LoadError
|
12
|
+
# STDERR.puts "In development, you need to use `bundle exec bin/todo` to run your app"
|
13
|
+
# STDERR.puts "At install-time, RubyGems will make sure lib, etc. are in the load path"
|
14
|
+
# STDERR.puts "Feel free to remove this message from bin/ds now"
|
15
|
+
# exit 64
|
16
|
+
#end
|
17
|
+
|
18
|
+
HighLine::Question.class_eval do
|
19
|
+
alias_method :orig_append_default, :append_default
|
20
|
+
def append_default
|
21
|
+
orig_append_default
|
22
|
+
@question = StringUtils.split3(@question,/\|.*\|/) do |head,match,tail|
|
23
|
+
match.sub!('|','(')
|
24
|
+
match[match.rindex('|'),1]=')'
|
25
|
+
match
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
include GLI::App
|
32
|
+
|
33
|
+
program_desc 'Describe your application here'
|
34
|
+
|
35
|
+
#version DesignShell::VERSION
|
36
|
+
|
37
|
+
#desc 'Describe some switch here'
|
38
|
+
#switch [:s,:switch]
|
39
|
+
#
|
40
|
+
#desc 'Describe some flag here'
|
41
|
+
#default_value 'the default'
|
42
|
+
#arg_name 'The name of the argument'
|
43
|
+
#flag [:f,:flagname]
|
44
|
+
|
45
|
+
desc 'configure credentials etc'
|
46
|
+
arg_name 'subcommands are: bitbucket'
|
47
|
+
command :configure do |configure|
|
48
|
+
|
49
|
+
configure.desc 'configure bitbucket for managing repositories'
|
50
|
+
configure.arg_name 'none'
|
51
|
+
configure.command :bitbucket do |bb|
|
52
|
+
bb.action do |global_options,options,args|
|
53
|
+
context = DesignShell::Context.new(:global_options=>global_options,:options=>options,:argv=>args)
|
54
|
+
repo = DesignShell::Repo.new
|
55
|
+
keyChain = DesignShell::KeyChain.new
|
56
|
+
core = DesignShell::Core.new(
|
57
|
+
:context => context,
|
58
|
+
:keyChain => keyChain,
|
59
|
+
:repo => repo
|
60
|
+
)
|
61
|
+
# use highline to ask questions here and store in key_chain
|
62
|
+
username = ask("User name: ") { |q|
|
63
|
+
q.default = "none"
|
64
|
+
}
|
65
|
+
say username
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
desc 'Describe push here'
|
72
|
+
arg_name 'Describe arguments to push here'
|
73
|
+
command :push do |c|
|
74
|
+
c.desc 'Describe a switch to push'
|
75
|
+
c.switch :s
|
76
|
+
|
77
|
+
c.desc 'Describe a flag to push'
|
78
|
+
c.default_value 'default'
|
79
|
+
c.flag :f
|
80
|
+
c.action do |global_options,options,args|
|
81
|
+
|
82
|
+
# Your command logic here
|
83
|
+
|
84
|
+
# If you have any errors, just raise them
|
85
|
+
# raise "that command made no sense"
|
86
|
+
|
87
|
+
puts "push command ran"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
desc 'Describe pull here'
|
92
|
+
arg_name 'Describe arguments to pull here'
|
93
|
+
command :pull do |c|
|
94
|
+
c.action do |global_options,options,args|
|
95
|
+
puts "pull command ran"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
desc 'Describe commit here'
|
101
|
+
arg_name 'Describe arguments to commit here'
|
102
|
+
command :commit do |c|
|
103
|
+
c.action do |*args|
|
104
|
+
context = DesignShell::Context.new(:argv=>args)
|
105
|
+
ds = DesignShell::Core.new(context)
|
106
|
+
ds.ensure_repo_open.commit
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
desc 'Describe build here'
|
111
|
+
arg_name 'Describe arguments to build here'
|
112
|
+
command :build do |c|
|
113
|
+
c.action do |global_options,options,args|
|
114
|
+
response = POpen4::shell('middleman build')
|
115
|
+
puts result[:stdout]
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
#desc 'List tasks'
|
121
|
+
#long_desc <<EOS
|
122
|
+
#List the tasks in your task list, possibly including completed tasks. By default, this will list
|
123
|
+
#all uncompleted tasks.
|
124
|
+
#EOS
|
125
|
+
#command [:list,:ls] do |c|
|
126
|
+
#
|
127
|
+
# c.desc 'List all tasks, including completed ones'
|
128
|
+
# c.command :all do |all|
|
129
|
+
# all.action do
|
130
|
+
# say 'list all'
|
131
|
+
# end
|
132
|
+
# end
|
133
|
+
#
|
134
|
+
# c.default_command :all
|
135
|
+
#end
|
136
|
+
|
137
|
+
# download existing repo : ds clone git://somegitrepo
|
138
|
+
# server side repo clone : ds fork
|
139
|
+
|
140
|
+
# ds git ... # talk directly to git
|
141
|
+
# ds middleman # talk directly to middleman
|
142
|
+
|
143
|
+
|
144
|
+
# ds pull git://somegitrepo # if no local repo, will ask "Do you wish to a) clone somegitrepo into a new folder /asds/dsa/somegitrepo or b) pull changes, except that you aren't inside a repo and haven't specified one"
|
145
|
+
# ds fork git://somegitrepo
|
146
|
+
|
147
|
+
|
148
|
+
#desc 'Describe clone here'
|
149
|
+
#arg_name 'Describe arguments to clone here'
|
150
|
+
#command :clone do |c|
|
151
|
+
# c.action do |global_options,options,args|
|
152
|
+
# puts "clone command ran"
|
153
|
+
# end
|
154
|
+
#end
|
155
|
+
#
|
156
|
+
#pre do |global,command,options,args|
|
157
|
+
# # Pre logic here
|
158
|
+
# # Return true to proceed; false to abourt and not call the
|
159
|
+
# # chosen command
|
160
|
+
# # Use skips_pre before a command to skip this block
|
161
|
+
# # on that command only
|
162
|
+
# true
|
163
|
+
#end
|
164
|
+
#
|
165
|
+
#post do |global,command,options,args|
|
166
|
+
# # Post logic here
|
167
|
+
# # Use skips_post before a command to skip this
|
168
|
+
# # block on that command only
|
169
|
+
#end
|
170
|
+
#
|
171
|
+
#on_error do |exception|
|
172
|
+
# # Error logic here
|
173
|
+
# # return false to skip default error handling
|
174
|
+
# true
|
175
|
+
#end
|
176
|
+
|
177
|
+
exit run(ARGV)
|