repo_manager 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
"""
|