wielder_of_anor 0.4.4 → 1.0.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.
- checksums.yaml +4 -4
- data/lib/wielder_of_anor.rb +116 -15
- data/lib/wielder_of_anor/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ac81beb241c3fc3d035d04c618420fad99b9dcc
|
4
|
+
data.tar.gz: '0664259f3f64ce317b60d4556874cc080e93afe4'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9f991d0e174d5681b298a6a46f566c1273b898d02fcf39dfccaec44ec30cbd11a199716e06a3ceb34b8efe290816d3098c6658ae24c7f283af712ab20bdaed9
|
7
|
+
data.tar.gz: fe9dcf70c5f8f91795ff9125bafdd0c2bfd48a180581ee5a2f5fa24ee5221482a43f3d67f368266972a4b3597774f0c1db369847189e41ffbab90a8f11f8c32f
|
data/lib/wielder_of_anor.rb
CHANGED
@@ -31,9 +31,8 @@ module WielderOfAnor
|
|
31
31
|
|
32
32
|
def prepare(commit_message, force_commit)
|
33
33
|
# If there's just one, it's the current version. Don't run if the current config is present.
|
34
|
-
|
35
|
-
|
36
|
-
!(File.exists?("#{@app_directory}/lib/config.yaml"))
|
34
|
+
restore_woa_settings if Dir.glob("#{@app_directory.chomp("/wielder_of_anor-#{VERSION}")}/wielder_of_anor*").length > 1 &&
|
35
|
+
!(File.exists?("#{@app_directory}/lib/config.yaml"))
|
37
36
|
first_run unless File.exists?("#{@app_directory}/lib/config.yaml")
|
38
37
|
|
39
38
|
config = YAML.load_file("#{@app_directory}/lib/config.yaml")
|
@@ -42,6 +41,9 @@ module WielderOfAnor
|
|
42
41
|
@current_directory = Dir.pwd
|
43
42
|
@files_changed_file_location = config['files_changed_file_location']
|
44
43
|
@commit_for_user = config['commit_for_user']
|
44
|
+
@check_branch = config['check_branch']
|
45
|
+
@branches_to_check = config['branches_to_check']
|
46
|
+
@current_branch_file_location = "#{@app_directory}/lib/current_branch"
|
45
47
|
|
46
48
|
# Don't want to use a previous version.
|
47
49
|
File.delete(@files_changed_file_location) if File.exists?(@files_changed_file_location)
|
@@ -109,11 +111,15 @@ module WielderOfAnor
|
|
109
111
|
|
110
112
|
commit_for_user = set_commit_for_user
|
111
113
|
|
114
|
+
check_branch = set_check_branch
|
115
|
+
|
116
|
+
branches_to_check = set_branches_to_check if check_branch == 'yes' || check_branch == 'y'
|
117
|
+
|
112
118
|
single_space
|
113
119
|
|
114
120
|
forbidden_words = set_forbidden_words
|
115
121
|
|
116
|
-
set_configs(files_changed_file_location, forbidden_words, commit_for_user)
|
122
|
+
set_configs(files_changed_file_location, forbidden_words, commit_for_user, check_branch, branches_to_check)
|
117
123
|
end
|
118
124
|
|
119
125
|
def set_commit_for_user
|
@@ -129,10 +135,57 @@ module WielderOfAnor
|
|
129
135
|
commit_for_user = STDIN.gets.strip!.downcase
|
130
136
|
end
|
131
137
|
|
138
|
+
single_space
|
139
|
+
|
132
140
|
commit_for_user
|
133
141
|
end
|
134
142
|
|
135
|
-
def
|
143
|
+
def set_check_branch
|
144
|
+
lines_pretty_print 'Would you like Wielder of Anor to stop you from committing to a certain branch or branches?'
|
145
|
+
lines_pretty_print Rainbow('(Type \'yes\' or \'no\'. Just hitting enter defaults to no.)').yellow
|
146
|
+
|
147
|
+
check_branch = STDIN.gets.strip!.downcase
|
148
|
+
check_branch = 'no' if check_branch == ''
|
149
|
+
|
150
|
+
until check_branch == 'yes' || check_branch =='y' || check_branch == 'no' || check_branch == 'n' do
|
151
|
+
lines_pretty_print Rainbow('Please type either \'yes\' or \'no\'.').yellow
|
152
|
+
check_branch = STDIN.gets.strip!.downcase
|
153
|
+
end
|
154
|
+
|
155
|
+
single_space
|
156
|
+
|
157
|
+
check_branch
|
158
|
+
end
|
159
|
+
|
160
|
+
def set_branches_to_check
|
161
|
+
branches_to_check = []
|
162
|
+
|
163
|
+
done = false
|
164
|
+
|
165
|
+
lines_pretty_print 'Sounds good! What branches should I block you from committing to?'
|
166
|
+
single_space
|
167
|
+
|
168
|
+
until done do
|
169
|
+
lines_pretty_print Rainbow('Enter a forbidden branch and hit enter. If you are done entering forbidden '\
|
170
|
+
'branches, just hit enter instead.').yellow unless branches_to_check.count > 0
|
171
|
+
|
172
|
+
lines_pretty_print Rainbow('Added! Enter another forbidden branch and hit enter. If you are done '\
|
173
|
+
'entering forbidden branches, just hit enter instead.').yellow unless branches_to_check.count == 0
|
174
|
+
branch = STDIN.gets.strip!
|
175
|
+
|
176
|
+
single_space
|
177
|
+
|
178
|
+
if branch == ''
|
179
|
+
done = true
|
180
|
+
else
|
181
|
+
branches_to_check << branch
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
branches_to_check
|
186
|
+
end
|
187
|
+
|
188
|
+
def set_configs(files_changed_file_location, forbidden_words, commit_for_user, check_branch, branches_to_check)
|
136
189
|
config = {}
|
137
190
|
config['files_changed_file_location'] = files_changed_file_location
|
138
191
|
|
@@ -142,6 +195,14 @@ module WielderOfAnor
|
|
142
195
|
config['commit_for_user'] = false
|
143
196
|
end
|
144
197
|
|
198
|
+
if check_branch == 'yes' || check_branch == 'y'
|
199
|
+
config['check_branch'] = true
|
200
|
+
config['branches_to_check'] = branches_to_check
|
201
|
+
else
|
202
|
+
config['check_branch'] = false
|
203
|
+
config['branches_to_check'] = []
|
204
|
+
end
|
205
|
+
|
145
206
|
config['forbidden_words'] = forbidden_words
|
146
207
|
|
147
208
|
file = File.open("#{@app_directory}/lib/config.yaml", 'w')
|
@@ -159,7 +220,7 @@ module WielderOfAnor
|
|
159
220
|
|
160
221
|
done = false
|
161
222
|
|
162
|
-
lines_pretty_print 'Great! Now that we\'re done with
|
223
|
+
lines_pretty_print 'Great! Now that we\'re done with that, let\'s add your forbidden '\
|
163
224
|
'words from here!'
|
164
225
|
single_space
|
165
226
|
|
@@ -300,6 +361,19 @@ module WielderOfAnor
|
|
300
361
|
end
|
301
362
|
|
302
363
|
def commit
|
364
|
+
if @check_branch
|
365
|
+
bash(@current_directory, "git rev-parse --abbrev-ref HEAD > #{@current_branch_file_location}")
|
366
|
+
current_branch = File.open(@current_branch_file_location, "r").read.strip!
|
367
|
+
|
368
|
+
if @branches_to_check.include?(current_branch)
|
369
|
+
lines_pretty_print Rainbow('I\'m sorry, Dave, but I can\'t allow you to do that.').red
|
370
|
+
lines_pretty_print Rainbow('You have tried committing to a forbidden branch. Danger, Will Robinson! Danger! '\
|
371
|
+
'Aborting!').red
|
372
|
+
|
373
|
+
abort
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
303
377
|
if @force_commit
|
304
378
|
lines_pretty_print 'Skipped checking for forbidden words. Ready to commit now?'
|
305
379
|
lines_pretty_print Rainbow('**WARNING: YOU ARE FORCING THE COMMIT WITHOUT CHECKING FOR FORBIDDEN WORDS.**').red
|
@@ -327,18 +401,45 @@ module WielderOfAnor
|
|
327
401
|
@app_directory = File.expand_path(File.dirname(__FILE__)).chomp('/lib')
|
328
402
|
end
|
329
403
|
|
330
|
-
def
|
331
|
-
|
404
|
+
def restore_woa_settings
|
405
|
+
lines_pretty_print 'I see that you have a previous wielder_of_anor installation on this machine.'
|
406
|
+
lines_pretty_print Rainbow('Would you like to restore its settings?').yellow
|
332
407
|
|
333
|
-
|
334
|
-
end
|
408
|
+
answered = false
|
335
409
|
|
336
|
-
|
337
|
-
|
338
|
-
|
410
|
+
until answered
|
411
|
+
answer = STDIN.gets.strip!
|
412
|
+
|
413
|
+
single_space
|
414
|
+
|
415
|
+
if answer == 'yes' || answer == 'y' || answer == 'no' || answer == 'n'
|
416
|
+
answered = true
|
417
|
+
else
|
418
|
+
lines_pretty_print Rainbow('Please input either \'yes\' or \'no\'.').yellow
|
419
|
+
end
|
420
|
+
end
|
421
|
+
|
422
|
+
return if answer == 'no' || answer == 'n'
|
423
|
+
|
424
|
+
lines_pretty_print 'One moment, please.'
|
339
425
|
|
340
|
-
|
341
|
-
|
426
|
+
single_space
|
427
|
+
|
428
|
+
all_gems = Dir.glob("#{@app_directory.chomp("/wielder_of_anor-#{VERSION}")}/wielder_of_anor*")
|
429
|
+
|
430
|
+
# glob orders things in the array alphabetically, so the second-to-last one in the array is the
|
431
|
+
# most recent version that is not the current version.
|
432
|
+
previous_config_file = "#{all_gems[-2]}/lib/config.yaml"
|
433
|
+
config = YAML.load_file(previous_config_file)
|
434
|
+
config['files_changed_file_location'] = "#{@app_directory}/lib/files_changed"
|
435
|
+
new_config_file = File.open("#{@app_directory}/lib/config.yaml", 'w')
|
436
|
+
|
437
|
+
YAML.dump(config, new_config_file)
|
438
|
+
new_config_file.close
|
439
|
+
|
440
|
+
lines_pretty_print 'Done! Please run me again when you\'re ready.'
|
441
|
+
|
442
|
+
abort
|
342
443
|
end
|
343
444
|
end
|
344
445
|
end
|