repo_manager 0.7.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/.gemfiles +115 -0
- data/.gitattributes +1 -0
- data/.gitignore +7 -0
- data/.rspec +3 -0
- data/.yardopts +11 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +99 -0
- data/Guardfile +63 -0
- data/HISTORY.markdown +12 -0
- data/LICENSE +20 -0
- data/README.markdown +192 -0
- data/Rakefile +94 -0
- data/TODO.markdown +15 -0
- data/VERSION +1 -0
- data/bin/repo +151 -0
- data/cucumber.yml +28 -0
- data/examples/pc_saved_game_backup/.gitignore +2 -0
- data/examples/pc_saved_game_backup/INSTALL.markdown +420 -0
- data/examples/pc_saved_game_backup/README.markdown +108 -0
- data/examples/pc_saved_game_backup/remote/.gitignore +2 -0
- data/examples/pc_saved_game_backup/repo_manager/Gemfile +12 -0
- data/examples/pc_saved_game_backup/repo_manager/Gemfile.lock +66 -0
- data/examples/pc_saved_game_backup/repo_manager/assets/.gitignore +2 -0
- data/examples/pc_saved_game_backup/repo_manager/features/support/aruba.rb +15 -0
- data/examples/pc_saved_game_backup/repo_manager/features/support/env.rb +11 -0
- data/examples/pc_saved_game_backup/repo_manager/features/support/steps.rb +3 -0
- data/examples/pc_saved_game_backup/repo_manager/features/tasks/update.feature +144 -0
- data/examples/pc_saved_game_backup/repo_manager/global/default/asset.conf +2 -0
- data/examples/pc_saved_game_backup/repo_manager/repo.conf +64 -0
- data/examples/pc_saved_game_backup/repo_manager/tasks/.gitignore +0 -0
- data/examples/pc_saved_game_backup/repo_manager/tasks/remote.rb +57 -0
- data/examples/pc_saved_game_backup/repo_manager/tasks/update.rb +65 -0
- data/examples/pc_saved_game_backup/saved_games/hearts/save1 +1 -0
- data/examples/pc_saved_game_backup/saved_games/hearts/save2 +1 -0
- data/examples/pc_saved_game_backup/saved_games/mines/my_profile.ini +1 -0
- data/examples/pc_saved_game_backup/saved_games/mines/saves/save1 +1 -0
- data/examples/pc_saved_game_backup/saved_games/mines/saves/save2 +1 -0
- data/features/actions/git.feature +296 -0
- data/features/actions/help.feature +53 -0
- data/features/actions/list.feature +624 -0
- data/features/actions/path.feature +195 -0
- data/features/actions/status.feature +261 -0
- data/features/actions/task.feature +127 -0
- data/features/assets/configuration.feature +204 -0
- data/features/assets/rendering.feature +42 -0
- data/features/assets/user_attributes.feature +98 -0
- data/features/bin.feature +42 -0
- data/features/logger.feature +218 -0
- data/features/settings.feature +240 -0
- data/features/support/aruba.rb +15 -0
- data/features/support/env.rb +11 -0
- data/features/support/steps.rb +3 -0
- data/features/tasks/add/asset.feature +178 -0
- data/features/tasks/generate/init.feature +56 -0
- data/lib/repo_manager.rb +36 -0
- data/lib/repo_manager/actions.rb +8 -0
- data/lib/repo_manager/actions/action_helper.rb +39 -0
- data/lib/repo_manager/actions/app_action.rb +30 -0
- data/lib/repo_manager/actions/base_action.rb +296 -0
- data/lib/repo_manager/actions/git_action.rb +113 -0
- data/lib/repo_manager/actions/help_action.rb +52 -0
- data/lib/repo_manager/actions/list_action.rb +123 -0
- data/lib/repo_manager/actions/path_action.rb +22 -0
- data/lib/repo_manager/actions/status_action.rb +192 -0
- data/lib/repo_manager/actions/task_action.rb +71 -0
- data/lib/repo_manager/app.rb +116 -0
- data/lib/repo_manager/assets.rb +3 -0
- data/lib/repo_manager/assets/app_asset.rb +15 -0
- data/lib/repo_manager/assets/asset_accessors.rb +67 -0
- data/lib/repo_manager/assets/asset_configuration.rb +137 -0
- data/lib/repo_manager/assets/asset_manager.rb +72 -0
- data/lib/repo_manager/assets/base_asset.rb +199 -0
- data/lib/repo_manager/assets/repo_asset.rb +30 -0
- data/lib/repo_manager/core.rb +2 -0
- data/lib/repo_manager/core/array.rb +21 -0
- data/lib/repo_manager/core/hash.rb +83 -0
- data/lib/repo_manager/errors.rb +10 -0
- data/lib/repo_manager/extensions/hash.rb +86 -0
- data/lib/repo_manager/git.rb +2 -0
- data/lib/repo_manager/git/lib.rb +69 -0
- data/lib/repo_manager/git/status.rb +196 -0
- data/lib/repo_manager/logger.rb +39 -0
- data/lib/repo_manager/settings.rb +98 -0
- data/lib/repo_manager/tasks.rb +3 -0
- data/lib/repo_manager/tasks/add/asset.rb +213 -0
- data/lib/repo_manager/tasks/generate/init.rb +42 -0
- data/lib/repo_manager/tasks/generate/templates/config/repo.conf.tt +61 -0
- data/lib/repo_manager/tasks/generate/templates/init/assets/.gitignore +0 -0
- data/lib/repo_manager/tasks/generate/templates/init/global/default/asset.conf +2 -0
- data/lib/repo_manager/tasks/generate/templates/init/tasks/.gitignore +0 -0
- data/lib/repo_manager/tasks/task_manager.rb +166 -0
- data/lib/repo_manager/tasks/thor_helper.rb +29 -0
- data/lib/repo_manager/test/asset_steps.rb +19 -0
- data/lib/repo_manager/test/base_steps.rb +152 -0
- data/lib/repo_manager/test/repo_api.rb +41 -0
- data/lib/repo_manager/test/repo_steps.rb +83 -0
- data/lib/repo_manager/test/test_api.rb +88 -0
- data/lib/repo_manager/views.rb +2 -0
- data/lib/repo_manager/views/app_view.rb +15 -0
- data/lib/repo_manager/views/base_view.rb +137 -0
- data/lib/repo_manager/views/templates/css/basic.css +26 -0
- data/lib/repo_manager/views/templates/default.erb +40 -0
- data/lib/repo_manager/views/templates/default.slim +37 -0
- data/lib/repo_manager/views/view_helper.rb +55 -0
- data/repo_manager.gemspec +75 -0
- data/spec/basic_app/actions/action_helper_spec.rb +54 -0
- data/spec/basic_app/assets/base_asset_spec.rb +210 -0
- data/spec/basic_app/core_spec.rb +78 -0
- data/spec/basic_app/settings_spec.rb +64 -0
- data/spec/basic_app/views/view_helper_spec.rb +28 -0
- data/spec/basic_gem/aruba_helper_spec.rb +33 -0
- data/spec/basic_gem/basic_gem_spec.rb +84 -0
- data/spec/basic_gem/gemspec_spec.rb +68 -0
- data/spec/repo_manager/git_spec.rb +31 -0
- data/spec/spec_helper.rb +25 -0
- metadata +472 -0
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
@announce
|
|
2
|
+
Feature: Listing repos
|
|
3
|
+
|
|
4
|
+
repo configurations listed to the screen or file with or without templates
|
|
5
|
+
using regular expression (regex) filtering.
|
|
6
|
+
|
|
7
|
+
Example usage:
|
|
8
|
+
|
|
9
|
+
repo list
|
|
10
|
+
repo list --list=NAME
|
|
11
|
+
repo list --type=repo_type
|
|
12
|
+
repo list --template ~/templates/myTemplate.slim
|
|
13
|
+
|
|
14
|
+
Example repo regex filtering:
|
|
15
|
+
|
|
16
|
+
repo list --filter=ass.t1,as.et2
|
|
17
|
+
|
|
18
|
+
Equivalent repo filtering:
|
|
19
|
+
|
|
20
|
+
repo list --filter=repo1,repo2
|
|
21
|
+
repo list --repo=repo1,repo2
|
|
22
|
+
repo list repo1 repo2
|
|
23
|
+
|
|
24
|
+
Equivalent usage, file writing using Slim templates:
|
|
25
|
+
|
|
26
|
+
repo list --template=default.slim --output=tmp/aruba/index.html
|
|
27
|
+
repo list --template=default.slim >> tmp/aruba/index.html
|
|
28
|
+
|
|
29
|
+
Equivalent usage, file writing using ERB templates:
|
|
30
|
+
|
|
31
|
+
repo list --template=default.erb --output=tmp/aruba/index.html
|
|
32
|
+
repo list --template=default.erb >> tmp/aruba/index.html
|
|
33
|
+
|
|
34
|
+
Example return just the first matching asset
|
|
35
|
+
|
|
36
|
+
repo list --match=FIRST
|
|
37
|
+
|
|
38
|
+
Example fail out if more than one matching asset
|
|
39
|
+
|
|
40
|
+
repo list --match=ONE
|
|
41
|
+
|
|
42
|
+
Example disable regex filter matching
|
|
43
|
+
|
|
44
|
+
repo list --match=EXACT
|
|
45
|
+
|
|
46
|
+
Example future usage (not implemented):
|
|
47
|
+
|
|
48
|
+
repo list --tags=adventure,favorites --group_by=tags --sort=ACQUIRED
|
|
49
|
+
|
|
50
|
+
Background: A master configuration file
|
|
51
|
+
Given a file named "repo.conf" with:
|
|
52
|
+
"""
|
|
53
|
+
---
|
|
54
|
+
options:
|
|
55
|
+
color : true
|
|
56
|
+
folders:
|
|
57
|
+
assets : data/assets
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
Scenario: Invalid asset type
|
|
61
|
+
When I run `repo list --type=invalid_asset_type`
|
|
62
|
+
Then the exit status should be 1
|
|
63
|
+
And the output should contain:
|
|
64
|
+
"""
|
|
65
|
+
unknown asset type
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
Scenario: List all
|
|
69
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
70
|
+
| name |
|
|
71
|
+
| asset1 |
|
|
72
|
+
| asset2 |
|
|
73
|
+
| asset3 |
|
|
74
|
+
When I run `repo list`
|
|
75
|
+
Then the exit status should be 0
|
|
76
|
+
And the output should contain:
|
|
77
|
+
"""
|
|
78
|
+
asset1:
|
|
79
|
+
--- {}
|
|
80
|
+
|
|
81
|
+
asset2:
|
|
82
|
+
--- {}
|
|
83
|
+
|
|
84
|
+
asset3:
|
|
85
|
+
--- {}
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
Scenario: List just name
|
|
89
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
90
|
+
| name |
|
|
91
|
+
| asset1 |
|
|
92
|
+
| asset2 |
|
|
93
|
+
| asset3 |
|
|
94
|
+
When I run `repo list --list=NAME`
|
|
95
|
+
Then the exit status should be 0
|
|
96
|
+
And the output should contain:
|
|
97
|
+
"""
|
|
98
|
+
asset1
|
|
99
|
+
asset2
|
|
100
|
+
asset3
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
Scenario: List just name using '--filter' option
|
|
104
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
105
|
+
| name |
|
|
106
|
+
| asset1 |
|
|
107
|
+
| asset2 |
|
|
108
|
+
| asset3 |
|
|
109
|
+
When I run `repo list --filter=asset1 --list=NAME`
|
|
110
|
+
Then the exit status should be 0
|
|
111
|
+
And the output should contain:
|
|
112
|
+
"""
|
|
113
|
+
asset1
|
|
114
|
+
"""
|
|
115
|
+
And the output should not contain:
|
|
116
|
+
"""
|
|
117
|
+
asset2
|
|
118
|
+
"""
|
|
119
|
+
And the output should not contain:
|
|
120
|
+
"""
|
|
121
|
+
asset3
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
Scenario: List just name using '--repos' option
|
|
125
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
126
|
+
| name |
|
|
127
|
+
| asset1 |
|
|
128
|
+
| asset2 |
|
|
129
|
+
| asset3 |
|
|
130
|
+
When I run `repo list --repos=asset1 --list=NAME`
|
|
131
|
+
Then the exit status should be 0
|
|
132
|
+
And the output should contain exactly:
|
|
133
|
+
"""
|
|
134
|
+
asset1
|
|
135
|
+
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
Scenario: List just name using passing filters as args
|
|
139
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
140
|
+
| name |
|
|
141
|
+
| asset1 |
|
|
142
|
+
| asset2 |
|
|
143
|
+
| asset3 |
|
|
144
|
+
When I run `repo list asset1 asset2 --list=NAME`
|
|
145
|
+
Then the exit status should be 0
|
|
146
|
+
And the output should contain:
|
|
147
|
+
"""
|
|
148
|
+
asset1
|
|
149
|
+
asset2
|
|
150
|
+
"""
|
|
151
|
+
And the output should not contain:
|
|
152
|
+
"""
|
|
153
|
+
asset3
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
Scenario: List the first and only first matching asset with match mode '--match FIRST'
|
|
157
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
158
|
+
| name |
|
|
159
|
+
| asset1 |
|
|
160
|
+
| asset2 |
|
|
161
|
+
| asset3 |
|
|
162
|
+
When I run `repo list --match=FIRST --list=NAME`
|
|
163
|
+
Then the exit status should be 0
|
|
164
|
+
And the output should contain exactly:
|
|
165
|
+
"""
|
|
166
|
+
asset1
|
|
167
|
+
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
Scenario: List with invalid options in varying positions on the command line
|
|
171
|
+
When I run `repo list --bad-option1 --repos=asset1 --list=NAME`
|
|
172
|
+
Then the exit status should be 1
|
|
173
|
+
And its output should contain:
|
|
174
|
+
"""
|
|
175
|
+
invalid option: --bad-option1
|
|
176
|
+
"""
|
|
177
|
+
When I run `repo list arg1 arg2 --bad-option2 --repos=asset1 --list=NAME`
|
|
178
|
+
Then the exit status should be 1
|
|
179
|
+
And its output should contain:
|
|
180
|
+
"""
|
|
181
|
+
invalid option: --bad-option2
|
|
182
|
+
"""
|
|
183
|
+
When I run `repo --bad-option3 list arg1 arg2 --repos=asset1 --list=NAME`
|
|
184
|
+
Then the exit status should be 1
|
|
185
|
+
And its output should contain:
|
|
186
|
+
"""
|
|
187
|
+
invalid option: --bad-option3
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
Scenario: Multiple matching assets fail hard with asset match mode '--match ONE'
|
|
191
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
192
|
+
| name |
|
|
193
|
+
| asset1 |
|
|
194
|
+
| asset2 |
|
|
195
|
+
| asset3 |
|
|
196
|
+
When I run `repo list --match=ONE --list=NAME`
|
|
197
|
+
Then the exit status should be 1
|
|
198
|
+
And the output should contain:
|
|
199
|
+
"""
|
|
200
|
+
multiple matching assets found
|
|
201
|
+
"""
|
|
202
|
+
|
|
203
|
+
Scenario: Regex asset matching of any part of asset name is the default match mode
|
|
204
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
205
|
+
| name |
|
|
206
|
+
| asset1 |
|
|
207
|
+
| asset2 |
|
|
208
|
+
| asset3 |
|
|
209
|
+
When I run `repo list a.s.t --list=NAME`
|
|
210
|
+
Then the exit status should be 0
|
|
211
|
+
And the output should contain:
|
|
212
|
+
"""
|
|
213
|
+
asset1
|
|
214
|
+
asset2
|
|
215
|
+
asset3
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
Scenario: No regex asset matching with asset match mode '--match EXACT'
|
|
219
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
220
|
+
| name |
|
|
221
|
+
| asset1 |
|
|
222
|
+
| asset2 |
|
|
223
|
+
| asset3 |
|
|
224
|
+
When I run `repo list a.s.t --match=EXACT --list=NAME`
|
|
225
|
+
Then the exit status should be 0
|
|
226
|
+
And the output should not contain:
|
|
227
|
+
"""
|
|
228
|
+
asset1
|
|
229
|
+
"""
|
|
230
|
+
|
|
231
|
+
Scenario: Matching only on the asset name, not the path
|
|
232
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
233
|
+
| name |
|
|
234
|
+
| asset1 |
|
|
235
|
+
| asset2 |
|
|
236
|
+
| asset3 |
|
|
237
|
+
When I run `repo list assets --list=NAME --type=app_asset`
|
|
238
|
+
Then the exit status should be 0
|
|
239
|
+
And the output should not contain:
|
|
240
|
+
"""
|
|
241
|
+
asset
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
Scenario: List to screen using the built in default template
|
|
245
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
246
|
+
| name |
|
|
247
|
+
| asset1 |
|
|
248
|
+
| asset2 |
|
|
249
|
+
| asset3 |
|
|
250
|
+
When I run `repo list --template --verbose`
|
|
251
|
+
Then the exit status should be 0
|
|
252
|
+
And the normalized output should contain:
|
|
253
|
+
"""
|
|
254
|
+
<!DOCTYPE html>
|
|
255
|
+
<html lang="en">
|
|
256
|
+
<head>
|
|
257
|
+
<title>Default View</title>
|
|
258
|
+
<meta charset="utf-8" />
|
|
259
|
+
<meta content="repo" name="keywords" />
|
|
260
|
+
<meta content="RepoManager default template" name="description" />
|
|
261
|
+
<meta content="Robert Wahler" name="author" />
|
|
262
|
+
<link href="http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css" rel="stylesheet" />
|
|
263
|
+
<style type="text/css">html, body {
|
|
264
|
+
background-color: #eee;
|
|
265
|
+
}
|
|
266
|
+
.container {
|
|
267
|
+
width: 820px;
|
|
268
|
+
}
|
|
269
|
+
.container > footer p {
|
|
270
|
+
text-align: center;
|
|
271
|
+
}
|
|
272
|
+
.page-header {
|
|
273
|
+
background-color: #f5f5f5;
|
|
274
|
+
padding: 20px 20px 10px;
|
|
275
|
+
margin: -20px -20px 20px;
|
|
276
|
+
}
|
|
277
|
+
/* The white background content wrapper */
|
|
278
|
+
.content {
|
|
279
|
+
background-color: #fff;
|
|
280
|
+
padding: 20px;
|
|
281
|
+
margin: 0 -20px; /* negative indent the amount of the padding to maintain the grid system */
|
|
282
|
+
-webkit-border-radius: 0 0 6px 6px;
|
|
283
|
+
-moz-border-radius: 0 0 6px 6px;
|
|
284
|
+
border-radius: 0 0 6px 6px;
|
|
285
|
+
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
286
|
+
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
287
|
+
box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
288
|
+
}
|
|
289
|
+
</style>
|
|
290
|
+
</head>
|
|
291
|
+
<body>
|
|
292
|
+
<div class="container">
|
|
293
|
+
<div class="content">
|
|
294
|
+
<div class="page-header">
|
|
295
|
+
<h1>Assets Report</h1>
|
|
296
|
+
</div>
|
|
297
|
+
<h2>Assets</h2>
|
|
298
|
+
<table class="condensed-table bordered-table zebra-striped">
|
|
299
|
+
<thead>
|
|
300
|
+
<tr>
|
|
301
|
+
<th>Name</th>
|
|
302
|
+
</tr>
|
|
303
|
+
</thead>
|
|
304
|
+
<tbody>
|
|
305
|
+
<tr>
|
|
306
|
+
<td>asset1</td>
|
|
307
|
+
</tr>
|
|
308
|
+
<tr>
|
|
309
|
+
<td>asset2</td>
|
|
310
|
+
</tr>
|
|
311
|
+
<tr>
|
|
312
|
+
<td>asset3</td>
|
|
313
|
+
</tr>
|
|
314
|
+
</tbody>
|
|
315
|
+
</table>
|
|
316
|
+
</div>
|
|
317
|
+
<footer>
|
|
318
|
+
<p>Copyright © 2011 GearheadForHire, LLC</p>
|
|
319
|
+
</footer>
|
|
320
|
+
</div>
|
|
321
|
+
</body>
|
|
322
|
+
</html>
|
|
323
|
+
"""
|
|
324
|
+
|
|
325
|
+
Scenario: List to file using the built in default template
|
|
326
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
327
|
+
| name |
|
|
328
|
+
| asset1 |
|
|
329
|
+
| asset2 |
|
|
330
|
+
| asset3 |
|
|
331
|
+
When I run `repo list --template --output=data/output.html --verbose`
|
|
332
|
+
Then the exit status should be 0
|
|
333
|
+
And the file "data/output.html" should contain:
|
|
334
|
+
"""
|
|
335
|
+
<!DOCTYPE html>
|
|
336
|
+
<html lang="en">
|
|
337
|
+
<head>
|
|
338
|
+
<title>Default View</title>
|
|
339
|
+
<meta charset="utf-8" />
|
|
340
|
+
<meta content="repo" name="keywords" />
|
|
341
|
+
<meta content="RepoManager default template" name="description" />
|
|
342
|
+
<meta content="Robert Wahler" name="author" />
|
|
343
|
+
<link href="http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css" rel="stylesheet" />
|
|
344
|
+
<style type="text/css">html, body {
|
|
345
|
+
background-color: #eee;
|
|
346
|
+
}
|
|
347
|
+
.container {
|
|
348
|
+
width: 820px;
|
|
349
|
+
}
|
|
350
|
+
.container > footer p {
|
|
351
|
+
text-align: center;
|
|
352
|
+
}
|
|
353
|
+
.page-header {
|
|
354
|
+
background-color: #f5f5f5;
|
|
355
|
+
padding: 20px 20px 10px;
|
|
356
|
+
margin: -20px -20px 20px;
|
|
357
|
+
}
|
|
358
|
+
/* The white background content wrapper */
|
|
359
|
+
.content {
|
|
360
|
+
background-color: #fff;
|
|
361
|
+
padding: 20px;
|
|
362
|
+
margin: 0 -20px; /* negative indent the amount of the padding to maintain the grid system */
|
|
363
|
+
-webkit-border-radius: 0 0 6px 6px;
|
|
364
|
+
-moz-border-radius: 0 0 6px 6px;
|
|
365
|
+
border-radius: 0 0 6px 6px;
|
|
366
|
+
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
367
|
+
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
368
|
+
box-shadow: 0 1px 2px rgba(0,0,0,.15);
|
|
369
|
+
}
|
|
370
|
+
</style>
|
|
371
|
+
</head>
|
|
372
|
+
<body>
|
|
373
|
+
<div class="container">
|
|
374
|
+
<div class="content">
|
|
375
|
+
<div class="page-header">
|
|
376
|
+
<h1>Assets Report</h1>
|
|
377
|
+
</div>
|
|
378
|
+
<h2>Assets</h2>
|
|
379
|
+
<table class="condensed-table bordered-table zebra-striped">
|
|
380
|
+
<thead>
|
|
381
|
+
<tr>
|
|
382
|
+
<th>Name</th>
|
|
383
|
+
</tr>
|
|
384
|
+
</thead>
|
|
385
|
+
<tbody>
|
|
386
|
+
<tr>
|
|
387
|
+
<td>asset1</td>
|
|
388
|
+
</tr>
|
|
389
|
+
<tr>
|
|
390
|
+
<td>asset2</td>
|
|
391
|
+
</tr>
|
|
392
|
+
<tr>
|
|
393
|
+
<td>asset3</td>
|
|
394
|
+
</tr>
|
|
395
|
+
</tbody>
|
|
396
|
+
</table>
|
|
397
|
+
</div>
|
|
398
|
+
<footer>
|
|
399
|
+
<p>Copyright © 2011 GearheadForHire, LLC</p>
|
|
400
|
+
</footer>
|
|
401
|
+
</div>
|
|
402
|
+
</body>
|
|
403
|
+
</html>
|
|
404
|
+
"""
|
|
405
|
+
|
|
406
|
+
Scenario: No not overwrite existing output unless prompted 'Y/N' or given the '--force' option
|
|
407
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
408
|
+
| name |
|
|
409
|
+
| asset1 |
|
|
410
|
+
| asset2 |
|
|
411
|
+
| asset3 |
|
|
412
|
+
And a file named "data/output.html" with:
|
|
413
|
+
"""
|
|
414
|
+
this file was not overwritten
|
|
415
|
+
"""
|
|
416
|
+
When I run `repo list --template --output=data/output.html --verbose`
|
|
417
|
+
Then the exit status should be 0
|
|
418
|
+
And the file "data/output.html" should contain:
|
|
419
|
+
"""
|
|
420
|
+
this file was not overwritten
|
|
421
|
+
"""
|
|
422
|
+
And the file "data/output.html" should not contain:
|
|
423
|
+
"""
|
|
424
|
+
</html>
|
|
425
|
+
"""
|
|
426
|
+
|
|
427
|
+
Scenario: Overwrite automatically for existing output using '--force'
|
|
428
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
429
|
+
| name |
|
|
430
|
+
| asset1 |
|
|
431
|
+
| asset2 |
|
|
432
|
+
| asset3 |
|
|
433
|
+
And a file named "data/output.html" with:
|
|
434
|
+
"""
|
|
435
|
+
this file was not overwritten
|
|
436
|
+
"""
|
|
437
|
+
When I run `repo list --template --output=data/output.html --force --verbose`
|
|
438
|
+
Then the exit status should be 0
|
|
439
|
+
And the file "data/output.html" should not contain:
|
|
440
|
+
"""
|
|
441
|
+
this file was not overwritten
|
|
442
|
+
"""
|
|
443
|
+
And the file "data/output.html" should contain:
|
|
444
|
+
"""
|
|
445
|
+
<body>
|
|
446
|
+
<div class="container">
|
|
447
|
+
<div class="content">
|
|
448
|
+
<div class="page-header">
|
|
449
|
+
<h1>Assets Report</h1>
|
|
450
|
+
</div>
|
|
451
|
+
<h2>Assets</h2>
|
|
452
|
+
<table class="condensed-table bordered-table zebra-striped">
|
|
453
|
+
<thead>
|
|
454
|
+
<tr>
|
|
455
|
+
<th>Name</th>
|
|
456
|
+
</tr>
|
|
457
|
+
</thead>
|
|
458
|
+
<tbody>
|
|
459
|
+
<tr>
|
|
460
|
+
<td>asset1</td>
|
|
461
|
+
</tr>
|
|
462
|
+
<tr>
|
|
463
|
+
<td>asset2</td>
|
|
464
|
+
</tr>
|
|
465
|
+
<tr>
|
|
466
|
+
<td>asset3</td>
|
|
467
|
+
</tr>
|
|
468
|
+
</tbody>
|
|
469
|
+
</table>
|
|
470
|
+
</div>
|
|
471
|
+
<footer>
|
|
472
|
+
<p>Copyright © 2011 GearheadForHire, LLC</p>
|
|
473
|
+
</footer>
|
|
474
|
+
</div>
|
|
475
|
+
</body>
|
|
476
|
+
</html>
|
|
477
|
+
"""
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
Scenario: Use built in ERB template instead of the default Slim template
|
|
481
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
482
|
+
| name |
|
|
483
|
+
| asset1 |
|
|
484
|
+
| asset2 |
|
|
485
|
+
| asset3 |
|
|
486
|
+
When I run `repo list --template=default.erb --output=data/output.html --verbose`
|
|
487
|
+
Then the exit status should be 0
|
|
488
|
+
And the file "data/output.html" should contain:
|
|
489
|
+
"""
|
|
490
|
+
<body>
|
|
491
|
+
<div class="container">
|
|
492
|
+
<div class="content">
|
|
493
|
+
<div class="page-header">
|
|
494
|
+
<h1>Assets Report</h1>
|
|
495
|
+
</div>
|
|
496
|
+
<h2>Assets</h2>
|
|
497
|
+
<table class="condensed-table bordered-table zebra-striped">
|
|
498
|
+
<thead>
|
|
499
|
+
<tr>
|
|
500
|
+
<th>Name</th>
|
|
501
|
+
</tr>
|
|
502
|
+
</thead>
|
|
503
|
+
<tbody>
|
|
504
|
+
<tr>
|
|
505
|
+
<td>asset1</td>
|
|
506
|
+
</tr>
|
|
507
|
+
<tr>
|
|
508
|
+
<td>asset2</td>
|
|
509
|
+
</tr>
|
|
510
|
+
<tr>
|
|
511
|
+
<td>asset3</td>
|
|
512
|
+
</tr>
|
|
513
|
+
</tbody>
|
|
514
|
+
</table>
|
|
515
|
+
</div>
|
|
516
|
+
<footer>
|
|
517
|
+
<p>Copyright © 2011 GearheadForHire, LLC</p>
|
|
518
|
+
</footer>
|
|
519
|
+
</div>
|
|
520
|
+
</body>
|
|
521
|
+
</html>
|
|
522
|
+
"""
|
|
523
|
+
|
|
524
|
+
Scenario: Unsupported template file extension
|
|
525
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
526
|
+
| name |
|
|
527
|
+
| asset1 |
|
|
528
|
+
| asset2 |
|
|
529
|
+
| asset3 |
|
|
530
|
+
And a file named "template.fOO" with:
|
|
531
|
+
"""
|
|
532
|
+
this file was not overwritten
|
|
533
|
+
"""
|
|
534
|
+
When I run `repo list --template=template.fOO --output=data/output.html --verbose`
|
|
535
|
+
Then the exit status should be 1
|
|
536
|
+
And the output should contain:
|
|
537
|
+
"""
|
|
538
|
+
unsupported template type based on file extension .foo
|
|
539
|
+
"""
|
|
540
|
+
|
|
541
|
+
Scenario: Default action, no filter, --list==SHORT
|
|
542
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
543
|
+
| name | path |
|
|
544
|
+
| test1 | test_path_1 |
|
|
545
|
+
| test2 | test_path_2 |
|
|
546
|
+
When I run `repo list --list=SHORT --verbose`
|
|
547
|
+
Then the exit status should be 0
|
|
548
|
+
And the output should contain:
|
|
549
|
+
"""
|
|
550
|
+
test1: ./test_path_1
|
|
551
|
+
test2: ./test_path_2
|
|
552
|
+
"""
|
|
553
|
+
|
|
554
|
+
Scenario: Default action, no filter, --list=NAME
|
|
555
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
556
|
+
| name | path |
|
|
557
|
+
| test1 | test_path_1 |
|
|
558
|
+
| test2 | test_path_2 |
|
|
559
|
+
When I run `repo list --list=NAME`
|
|
560
|
+
Then the exit status should be 0
|
|
561
|
+
And the output should contain:
|
|
562
|
+
"""
|
|
563
|
+
test1
|
|
564
|
+
test2
|
|
565
|
+
"""
|
|
566
|
+
|
|
567
|
+
Scenario: Default action, no filter, --list=PATH
|
|
568
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
569
|
+
| name | path |
|
|
570
|
+
| test1 | test_path_1 |
|
|
571
|
+
| test2 | test_path_2 |
|
|
572
|
+
When I run `repo list --list=PATH`
|
|
573
|
+
Then the exit status should be 0
|
|
574
|
+
And the output should match:
|
|
575
|
+
"""
|
|
576
|
+
.+/test_path_1$
|
|
577
|
+
.+/test_path_2$
|
|
578
|
+
"""
|
|
579
|
+
|
|
580
|
+
Scenario: Missing path defaults to repo name
|
|
581
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
582
|
+
| name |
|
|
583
|
+
| test1 |
|
|
584
|
+
| test2 |
|
|
585
|
+
When I run `repo list --list=SHORT`
|
|
586
|
+
Then the exit status should be 0
|
|
587
|
+
And the output should contain:
|
|
588
|
+
"""
|
|
589
|
+
test1: ./test1
|
|
590
|
+
test2: ./test2
|
|
591
|
+
"""
|
|
592
|
+
|
|
593
|
+
Scenario: Missing repos is still valid
|
|
594
|
+
Given a file named "repo.conf" with:
|
|
595
|
+
"""
|
|
596
|
+
---
|
|
597
|
+
"""
|
|
598
|
+
When I run `repo list --list=SHORT`
|
|
599
|
+
Then the exit status should be 0
|
|
600
|
+
|
|
601
|
+
Scenario: Short format with --filter repo
|
|
602
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
603
|
+
| name |
|
|
604
|
+
| test1 |
|
|
605
|
+
| test2 |
|
|
606
|
+
When I run `repo list --filter=test1 --list=SHORT --no-verbose`
|
|
607
|
+
Then the exit status should be 0
|
|
608
|
+
And the output should contain exactly:
|
|
609
|
+
"""
|
|
610
|
+
test1: ./test1
|
|
611
|
+
|
|
612
|
+
"""
|
|
613
|
+
|
|
614
|
+
Scenario: Short format with arg repo
|
|
615
|
+
Given the folder "data/assets" with the following asset configurations:
|
|
616
|
+
| name |
|
|
617
|
+
| test1 |
|
|
618
|
+
| test2 |
|
|
619
|
+
When I run `repo list test1 --list=SHORT --no-verbose`
|
|
620
|
+
Then the output should contain exactly:
|
|
621
|
+
"""
|
|
622
|
+
test1: ./test1
|
|
623
|
+
|
|
624
|
+
"""
|