brightpearl-cli 2.6.0 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/brightpearl_cli.rb +1 -1
- data/lib/core/git.rb +55 -20
- data/lib/core/utils_files.rb +4 -3
- data/lib/core/utils_routes.rb +19 -0
- data/lib/routes/git_checkout.rb +1 -1
- data/lib/routes/git_merge.rb +69 -39
- data/lib/routes/git_update.rb +3 -3
- data/lib/routes/scripts_sonar.rb +1 -1
- data/lib/routes/test.rb +4 -5
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11ca22551ed1104e27ddb26e0eec561ee6e9f2b8
|
4
|
+
data.tar.gz: f2ef6b2558466256904cc7fd55129af139abfbef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c3843d7e7c4514596f292188a026b6716fa8688342550941b8cc7637559a22f2693e0755d061001649697c41906bcdc116f59fd300516216cde0226d01705a9
|
7
|
+
data.tar.gz: 8a79acee84d9402c9572fbd0eddc111cbad4711a3fbe21def90b44f47a74abd1ce99790c397d53be1768ed30e084688687ebce9923edd0b910accd4820d8b62e
|
data/lib/brightpearl_cli.rb
CHANGED
data/lib/core/git.rb
CHANGED
@@ -48,7 +48,8 @@ module App
|
|
48
48
|
|
49
49
|
RELEASE_BRANCH_REGEX = /release-\d+\.\d+\.\d+-\d{4}/
|
50
50
|
|
51
|
-
GIT_MERGE_DEFAULT_FILE = '~/tmp/merge.txt'
|
51
|
+
GIT_MERGE_DEFAULT_FILE = '~/tmp/bp-merge.txt'
|
52
|
+
GIT_LAST_GIT_FETCH_FILE = '~/tmp/bp-last-git-fetch.tmp'
|
52
53
|
|
53
54
|
def initialize
|
54
55
|
|
@@ -453,11 +454,24 @@ module App
|
|
453
454
|
# @return void
|
454
455
|
def update_origin(repo_dir = nil)
|
455
456
|
validate_repo_dir(repo_dir)
|
457
|
+
epoch_current = Time.now.strftime('%s')
|
458
|
+
unless App::UtilsFiles::file_exists(GIT_LAST_GIT_FETCH_FILE)
|
459
|
+
App::UtilsFiles::write_file(GIT_LAST_GIT_FETCH_FILE, [epoch_current])
|
460
|
+
end
|
456
461
|
unless @origin_updated_code && repo_dir == App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE) ||
|
457
462
|
@origin_updated_db && repo_dir == App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB) ||
|
458
463
|
@origin_updated_code && @origin_updated_db && repo_dir.nil?
|
459
464
|
|
460
|
-
|
465
|
+
# IF ORIGIN WAS UPDATED IN THE LAST HOUR, DON'T DO IT AGAIN
|
466
|
+
epoch_last_fetch = App::UtilsFiles::read_file(GIT_LAST_GIT_FETCH_FILE)[0]
|
467
|
+
time_difference = epoch_current.to_i - epoch_last_fetch.to_i
|
468
|
+
if time_difference < 3600
|
469
|
+
App::UtilsFiles::write_file(GIT_LAST_GIT_FETCH_FILE, [epoch_current])
|
470
|
+
App::Terminal::output("Origin already up to date \xe2\x80\x94 #{App::Terminal::format_directory(get_repo_shorthand(repo_dir))}")
|
471
|
+
return
|
472
|
+
end
|
473
|
+
|
474
|
+
App::Terminal::output("Updating origin \xe2\x80\x94 #{App::Terminal::format_directory(get_repo_shorthand(repo_dir))}")
|
461
475
|
case repo_dir
|
462
476
|
when App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)
|
463
477
|
@origin_updated_code = true
|
@@ -529,7 +543,7 @@ module App
|
|
529
543
|
if results.any?
|
530
544
|
App::Terminal::command(['git status'], repo_dir)
|
531
545
|
current_branch = current_branch_for_repo(repo_dir)
|
532
|
-
if automatic || App::Terminal::prompt_yes_no("Found uncommitted files in #{App::Terminal::format_directory(get_repo_shorthand(repo_dir))} on branch #{App::Terminal::format_branch(current_branch)}", nil, "Would you like to #{App::Terminal::format_action('stash')}\x1B[38;5;89m these changes before continuing?")
|
546
|
+
if automatic || App::Terminal::prompt_yes_no("Found uncommitted files in #{App::Terminal::format_directory(get_repo_shorthand(repo_dir))} on branch #{App::Terminal::format_branch(current_branch)}", nil, "Would you like to #{App::Terminal::format_action('stash')}\x1B[38;5;89m these changes before continuing?", false)
|
533
547
|
App::Terminal::output('Stashing working changes', App::Terminal::MSG_AUTOMATIC) if automatic
|
534
548
|
App::Terminal::command('git stash', repo_dir)
|
535
549
|
else
|
@@ -600,16 +614,16 @@ module App
|
|
600
614
|
case display
|
601
615
|
when SAME_BRANCH_WARNING
|
602
616
|
App::Terminal::warning("You're code is on #{App::Terminal::format_highlight('2 different branches')}", [
|
603
|
-
|
604
|
-
|
605
|
-
|
617
|
+
"#{App::Terminal::format_directory(get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))} is on #{App::Terminal::format_branch(branch_code)}",
|
618
|
+
"#{App::Terminal::format_directory(get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))} is on #{App::Terminal::format_branch(branch_db)}"
|
619
|
+
])
|
606
620
|
when SAME_BRANCH_ERROR
|
607
621
|
App::Terminal::error("You're code is on #{App::Terminal::format_highlight('2 different branches')}", [
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
622
|
+
"#{App::Terminal::format_directory(get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))} is on #{App::Terminal::format_branch(branch_code)}",
|
623
|
+
"#{App::Terminal::format_directory(get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))} is on #{App::Terminal::format_branch(branch_db)}",
|
624
|
+
nil,
|
625
|
+
'You cannot run this command unless both of your repos are on the same branch.'
|
626
|
+
])
|
613
627
|
end
|
614
628
|
return false
|
615
629
|
end
|
@@ -833,8 +847,7 @@ module App
|
|
833
847
|
match = branch_name.match(/\d{4,5}/i)
|
834
848
|
match.to_s
|
835
849
|
else
|
836
|
-
|
837
|
-
false
|
850
|
+
branch_name
|
838
851
|
end
|
839
852
|
end
|
840
853
|
|
@@ -881,27 +894,49 @@ module App
|
|
881
894
|
|
882
895
|
# Pass the result of App::Terminal::command() and this should do the rest. Bombs out if you don't confirm.
|
883
896
|
# @return void
|
884
|
-
def check_for_conflicts(result, additional_info = nil)
|
885
|
-
|
897
|
+
def check_for_conflicts(result, repo_dir, additional_info = nil)
|
898
|
+
validate_repo_dir(repo_dir)
|
899
|
+
error_array = []
|
886
900
|
unless additional_info.nil?
|
901
|
+
error_array = []
|
887
902
|
if additional_info.is_a? Array
|
888
903
|
additional_info.each do |info|
|
889
|
-
|
904
|
+
error_array << info
|
890
905
|
end
|
891
906
|
else
|
892
907
|
if additional_info.is_a? String
|
893
|
-
|
908
|
+
error_array << additional_info
|
894
909
|
else
|
895
910
|
raise RuntimeError, "Expected String, got: #{additional_info.class}"
|
896
911
|
end
|
897
912
|
end
|
898
913
|
end
|
899
|
-
|
900
|
-
|
901
|
-
|
914
|
+
error_message = "Merge conflict occurred in: #{get_repo_shorthand(repo_dir)}"
|
915
|
+
error_array << "Please #{App::Terminal::format_action('open an IDE')} and resolve your conflicts before continuing."
|
916
|
+
conflict_resolved = (result == false) ? false : true
|
917
|
+
changes_to_be_committed = false
|
918
|
+
while conflict_resolved == false
|
919
|
+
unless App::Terminal::prompt_yes_no(error_message, error_array, "Have you #{App::Terminal::format_highlight('resolved', true)}\x1B[38;5;89m your conflicts?")
|
902
920
|
App::Terminal::abort
|
903
921
|
end
|
922
|
+
conflict_resolved = true
|
923
|
+
changes_to_be_committed = false
|
924
|
+
error_message = 'It seems there are still files which need resolving:'
|
925
|
+
error_array = []
|
926
|
+
git_status = `git status`
|
927
|
+
git_status.split("\n").each do |line|
|
928
|
+
if line.strip =~ /\Aunmerged\spaths:\z/i
|
929
|
+
conflict_resolved = false
|
930
|
+
elsif line.strip =~ /\Aboth\smodified:/i
|
931
|
+
conflict_resolved = false
|
932
|
+
line_split = line.split('modified:')
|
933
|
+
error_array << "\x1B[38;5;223m#{line_split[1].strip}\x1B[0m"
|
934
|
+
elsif line.strip =~ /\Achanges\sto\sbe\scommitted:/i
|
935
|
+
changes_to_be_committed = true
|
936
|
+
end
|
937
|
+
end
|
904
938
|
end
|
939
|
+
App::Terminal::command('git commit --no-edit', repo_dir) if changes_to_be_committed
|
905
940
|
end
|
906
941
|
|
907
942
|
# Get list of files that have changed between 2 branches
|
data/lib/core/utils_files.rb
CHANGED
@@ -6,6 +6,7 @@ module App
|
|
6
6
|
class UtilsFiles
|
7
7
|
|
8
8
|
def self.write_file(full_path_and_file, array_of_lines)
|
9
|
+
full_path_and_file = File.expand_path(full_path_and_file)
|
9
10
|
unless array_of_lines.is_a? Array
|
10
11
|
raise RuntimeError, "Expected an array of lines to write to file, instead got: #{array_of_lines.class}"
|
11
12
|
end
|
@@ -24,7 +25,6 @@ module App
|
|
24
25
|
file.write("#{line}\n")
|
25
26
|
end
|
26
27
|
end
|
27
|
-
|
28
28
|
file.close
|
29
29
|
}
|
30
30
|
rescue Exception => e
|
@@ -33,8 +33,9 @@ module App
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.read_file(full_path_and_file)
|
36
|
+
full_path_and_file = File.expand_path(full_path_and_file)
|
36
37
|
unless file_exists(full_path_and_file)
|
37
|
-
App::Terminal::error("The file doesn't exist: #{full_path_and_file}", nil, true)
|
38
|
+
App::Terminal::error("The file doesn't exist: #{App::Terminal::format_directory(full_path_and_file)}", nil, true)
|
38
39
|
end
|
39
40
|
file_content = []
|
40
41
|
file = File.open(full_path_and_file).read
|
@@ -56,7 +57,7 @@ module App
|
|
56
57
|
end
|
57
58
|
|
58
59
|
def self.file_exists(full_path_and_file)
|
59
|
-
File.exist?(full_path_and_file)
|
60
|
+
File.exist?(File.expand_path(full_path_and_file))
|
60
61
|
end
|
61
62
|
|
62
63
|
def self.get_full_path(path)
|
data/lib/core/utils_routes.rb
CHANGED
@@ -20,6 +20,25 @@ module App
|
|
20
20
|
flags_set
|
21
21
|
end
|
22
22
|
|
23
|
+
# Will throw an error if more than one flag is set
|
24
|
+
# @param Array (@opts)
|
25
|
+
# @return void
|
26
|
+
def self.max_one_flag(opts)
|
27
|
+
all_flags = []
|
28
|
+
opts.each_key do |key|
|
29
|
+
unless key.to_s =~ /_given\z/i || key == :version || key == :help
|
30
|
+
all_flags << key.to_s
|
31
|
+
end
|
32
|
+
end
|
33
|
+
if flags_set(opts) >= 2
|
34
|
+
error_text = ['Please set 1 one of the following flags:', nil]
|
35
|
+
all_flags.each do |flag|
|
36
|
+
error_text << " \x1B[38;5;244m--#{flag}\x1B[0m"
|
37
|
+
end
|
38
|
+
App::Terminal::error("You can only set one #{App::Terminal::format_highlight('flag')} at a time", error_text)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
23
42
|
end
|
24
43
|
|
25
44
|
end
|
data/lib/routes/git_checkout.rb
CHANGED
@@ -149,7 +149,7 @@ module AppCommand
|
|
149
149
|
"git merge #{App::Git::MASTER} --no-edit"
|
150
150
|
]
|
151
151
|
results = App::Terminal::command(commands, repo_dir, true, false)
|
152
|
-
@git.check_for_conflicts(results[1], "Unable to successfully merge #{App::Terminal::format_branch(App::Git::MASTER)} into #{App::Terminal::format_branch(branch_to_checkout)} on #{App::Terminal::format_directory(@git.get_repo_shorthand(repo_dir))}")
|
152
|
+
@git.check_for_conflicts(results[1], repo_dir, "Unable to successfully merge #{App::Terminal::format_branch(App::Git::MASTER)} into #{App::Terminal::format_branch(branch_to_checkout)} on #{App::Terminal::format_directory(@git.get_repo_shorthand(repo_dir))}")
|
153
153
|
end
|
154
154
|
if @opts[:updatePush]
|
155
155
|
commands =[
|
data/lib/routes/git_merge.rb
CHANGED
@@ -117,14 +117,14 @@ module AppCommand
|
|
117
117
|
changed_files_db = {}
|
118
118
|
ran_db_update = false
|
119
119
|
|
120
|
-
# UPDATE MASTER & CHECKOUT BRANCH TO MERGE TO
|
121
|
-
App::Terminal::output("Updating #{App::Terminal::format_branch(@target_branch)}")
|
122
120
|
target_branch_data = @git.branch_data(@target_branch, nil, false)
|
121
|
+
|
122
|
+
# IF TARGET BRANCH DOESN'T EXIST...
|
123
123
|
if target_branch_data[0][:"#{App::Git::BRANCH_EXISTS}"] == false && target_branch_data[1][:"#{App::Git::BRANCH_EXISTS}"] == false
|
124
124
|
App::Terminal::error("Target branch #{App::Terminal::format_branch(@target_branch)} doesn't exist", 'Please check your spelling and try again.', true)
|
125
125
|
end
|
126
126
|
|
127
|
-
# CREATE TARGET BRANCH (CODE OR DB) IF ONE OR THE OTHER DOESN'T EXIST
|
127
|
+
# CREATE TARGET BRANCH (CODE OR DB) IF ONE OR THE OTHER DOESN'T EXIST (THIS CODE IS CURRENTLY NEVER REACHED)
|
128
128
|
if target_branch_data[0][:"#{App::Git::BRANCH_EXISTS}"] == false
|
129
129
|
App::Terminal::warning("Target #{App::Terminal::format_highlight('CODE')} branch doesn't exist")
|
130
130
|
App::Terminal::output("Creating branch #{App::Terminal::format_branch(@target_branch)} in #{App::Terminal::format_directory(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE))}")
|
@@ -135,13 +135,22 @@ module AppCommand
|
|
135
135
|
App::Terminal::error('Not yet implemented', ["The code which should create branch #{App::Terminal::format_branch(@target_branch)} on #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config::WORKSTATION_PATH_TO_BP_DB))} hasn't been programmed yet.", "Please speak to #{App::Terminal::format_highlight('Albert')}."], true)
|
136
136
|
end
|
137
137
|
|
138
|
+
# UPDATE MASTER & CHECKOUT BRANCH TO MERGE TO
|
139
|
+
App::Terminal::output("Updating #{App::Terminal::format_branch(@target_branch)}")
|
140
|
+
|
138
141
|
commands = [
|
139
142
|
"git checkout #{App::Git::MASTER}",
|
140
|
-
'git pull'
|
141
|
-
"git checkout #{@target_branch}",
|
142
|
-
'git pull',
|
143
|
-
"git merge #{App::Git::MASTER} --no-edit"
|
143
|
+
'git pull'
|
144
144
|
]
|
145
|
+
if @target_branch != App::Git::MASTER
|
146
|
+
additional_commands = [
|
147
|
+
"git checkout #{@target_branch}",
|
148
|
+
'git pull',
|
149
|
+
"git merge #{App::Git::MASTER} --no-edit"
|
150
|
+
]
|
151
|
+
commands.push(*additional_commands)
|
152
|
+
end
|
153
|
+
|
145
154
|
@git.repo_loop.each do |repo_dir|
|
146
155
|
App::Terminal::command(commands, repo_dir)
|
147
156
|
end
|
@@ -153,7 +162,7 @@ module AppCommand
|
|
153
162
|
end
|
154
163
|
|
155
164
|
# RUN CHECKS (AND CHECKOUT BRANCHES WHICH DON'T EXIST LOCALLY)
|
156
|
-
branches_data.
|
165
|
+
branches_data.each_with_index do |branch_data, idx|
|
157
166
|
if branch_data[0][:"#{App::Git::BRANCH_EXISTS}"] || branch_data[1][:"#{App::Git::BRANCH_EXISTS}"]
|
158
167
|
atleast_one_branch_found = true
|
159
168
|
end
|
@@ -169,46 +178,40 @@ module AppCommand
|
|
169
178
|
if branch_data[1][:"#{App::Git::BRANCH_HAS_STASH}"]
|
170
179
|
branches_with_stashes_db << branch_data[1][:"#{App::Git::BRANCH_NAME}"]
|
171
180
|
end
|
172
|
-
if branch_data[0][:"#{App::Git::
|
181
|
+
if branch_data[0][:"#{App::Git::BRANCH_EXISTS}"]
|
173
182
|
commands_cd = [
|
174
183
|
"git checkout #{branch_data[0][:"#{App::Git::BRANCH_NAME}"]}",
|
175
|
-
'git pull'
|
176
|
-
"git checkout #{current_branch_cd}"
|
184
|
+
'git pull'
|
177
185
|
]
|
186
|
+
commands_cd << "git checkout #{current_branch_cd}" if idx == (branches_data.length - 1)
|
178
187
|
App::Terminal::command(commands_cd, App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE))
|
179
188
|
end
|
180
|
-
if branch_data[1][:"#{App::Git::
|
189
|
+
if branch_data[1][:"#{App::Git::BRANCH_EXISTS}"]
|
181
190
|
commands_db = [
|
182
191
|
"git checkout #{branch_data[1][:"#{App::Git::BRANCH_NAME}"]}",
|
183
|
-
'git pull'
|
184
|
-
"git checkout #{current_branch_db}"
|
192
|
+
'git pull'
|
185
193
|
]
|
194
|
+
commands_db << "git checkout #{current_branch_db}" if idx == (branches_data.length - 1)
|
186
195
|
App::Terminal::command(commands_db, App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB))
|
187
196
|
end
|
188
197
|
end
|
189
198
|
|
190
199
|
puts # DO NOT REMOVE.
|
191
200
|
|
192
|
-
if non_existent_branches_cd.any? || branches_with_stashes_cd.any?
|
193
|
-
puts "\n #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))}\n\n"
|
194
|
-
end
|
195
201
|
if non_existent_branches_cd.any?
|
196
|
-
App::Terminal::warning("The following branches
|
202
|
+
App::Terminal::warning("The following branches could not be found \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))}", non_existent_branches_cd, false)
|
197
203
|
atleast_one_error = true
|
198
204
|
end
|
199
205
|
if branches_with_stashes_cd.any?
|
200
|
-
App::Terminal::warning("The following branches #{App::Terminal::
|
206
|
+
App::Terminal::warning("The following branches have #{App::Terminal::format_highlight('stashes', true)} \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))}", branches_with_stashes_cd, false)
|
201
207
|
atleast_one_error = true
|
202
208
|
end
|
203
|
-
if non_existent_branches_db.any? || branches_with_stashes_db.any?
|
204
|
-
puts "\n #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))}\n\n"
|
205
|
-
end
|
206
209
|
if non_existent_branches_db.any?
|
207
|
-
App::Terminal::warning("The following branches
|
210
|
+
App::Terminal::warning("The following branches could not be found \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))}", non_existent_branches_db, false)
|
208
211
|
atleast_one_error = true
|
209
212
|
end
|
210
213
|
if branches_with_stashes_db.any?
|
211
|
-
App::Terminal::warning("The following branches #{App::Terminal::
|
214
|
+
App::Terminal::warning("The following branches have #{App::Terminal::format_highlight('stashes', true)} \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))}", branches_with_stashes_db, false)
|
212
215
|
atleast_one_error = true
|
213
216
|
end
|
214
217
|
if atleast_one_branch_found == false
|
@@ -233,7 +236,6 @@ module AppCommand
|
|
233
236
|
branches_data.each do |branch_data|
|
234
237
|
|
235
238
|
branch_name = branch_data[0][:"#{App::Git::BRANCH_NAME}"]
|
236
|
-
App::Terminal::info("Merging: #{App::Terminal::format_branch(branch_name)}")
|
237
239
|
|
238
240
|
commands_1 = [
|
239
241
|
"git checkout #{branch_name}",
|
@@ -262,6 +264,8 @@ module AppCommand
|
|
262
264
|
|
263
265
|
# CODE BRANCHES
|
264
266
|
unless non_existent_branches_cd.include?(branch_name)
|
267
|
+
|
268
|
+
App::Terminal::info("Merging: #{App::Terminal::format_branch(branch_name)} \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_CODE)))}")
|
265
269
|
App::Terminal::command(commands_1, cd_repo)
|
266
270
|
|
267
271
|
# FIND OUT IF WE NEED TO FIX POM FILES
|
@@ -293,6 +297,8 @@ module AppCommand
|
|
293
297
|
|
294
298
|
# DB BRANCHES
|
295
299
|
unless non_existent_branches_db.include?(branch_name)
|
300
|
+
|
301
|
+
App::Terminal::info("Merging: #{App::Terminal::format_branch(branch_name)} \xe2\x80\x94 #{App::Terminal::format_directory(@git.get_repo_shorthand(App::Config.param(App::Config::WORKSTATION_PATH_TO_BP_DB)))}")
|
296
302
|
App::Terminal::command(commands_1, db_repo)
|
297
303
|
merge_master_result = App::Terminal::command(commands_2, db_repo)
|
298
304
|
if merge_master_result[0] == false
|
@@ -326,13 +332,25 @@ module AppCommand
|
|
326
332
|
App::Terminal::success('It seems as if everything ran smoothly', "#{@source_branches.count} #{(@source_branches.count) == 1 ? 'branch has' : 'branches have'} been successfully merged to #{App::Terminal::format_branch(@target_branch)}")
|
327
333
|
|
328
334
|
if ran_db_update
|
329
|
-
#
|
330
|
-
App::Terminal::output('Update FitNesse + Skeleton DBs')
|
331
|
-
App::Terminal::info('Must still program this', ['For now, go on your VM and run:', "#{App::Terminal::format_action('update-skeletons')}, #{App::Terminal::format_action('update-fitnesse')}"])
|
335
|
+
App::Terminal::info("You have run a #{App::Terminal::format_highlight('DB Update')}. Don't forget to run the following on your VM:", %W(#{App::Terminal::format_command('update-skeleton')} #{App::Terminal::format_command('update-fitnesse')}), false)
|
332
336
|
end
|
333
337
|
|
334
|
-
build_services
|
335
|
-
sanity_check
|
338
|
+
build_services(false)
|
339
|
+
sanity_check(false)
|
340
|
+
|
341
|
+
reminders = [
|
342
|
+
'Run the PHP Unit tests?',
|
343
|
+
'Run the PHP Behat tests?',
|
344
|
+
'Built and deployed all service?',
|
345
|
+
"Run the sonar checker? \xe2\x80\x94 #{App::Terminal::format_command('bp s s')}",
|
346
|
+
'Re-gulped everything?',
|
347
|
+
'Updated FitNesse DB?',
|
348
|
+
'Updated Skeleton DBs?',
|
349
|
+
'Removed all sandpit files?',
|
350
|
+
]
|
351
|
+
|
352
|
+
puts
|
353
|
+
App::Terminal::info("#{App::Terminal::format_action('Final Reminders')} \xe2\x80\x94 Have you:", reminders, false)
|
336
354
|
puts
|
337
355
|
|
338
356
|
@git.check_for_stash(true)
|
@@ -365,9 +383,19 @@ module AppCommand
|
|
365
383
|
|
366
384
|
end
|
367
385
|
|
368
|
-
def sanity_check
|
369
|
-
App::Terminal::info("Running sanity check against: #{App::Terminal::format_branch(@target_branch)}")
|
386
|
+
def sanity_check(preceding_blank_line = true)
|
370
387
|
if @source_branches.any?
|
388
|
+
jira_numbers_resolved = false
|
389
|
+
@source_branches.each do |source_branch|
|
390
|
+
if source_branch =~ /\d{4,5}/i
|
391
|
+
jira_numbers_resolved = true
|
392
|
+
end
|
393
|
+
end
|
394
|
+
unless jira_numbers_resolved
|
395
|
+
App::Terminal::info("No #{App::Terminal::format_highlight('Sanity Check')} could be run because the system couldn't resolve any jira numbers from:", @source_branches, preceding_blank_line)
|
396
|
+
return
|
397
|
+
end
|
398
|
+
App::Terminal::info("Running #{App::Terminal::format_highlight('Sanity Check')} against: #{App::Terminal::format_branch(@target_branch)}", nil, preceding_blank_line)
|
371
399
|
@source_branches.each do |source_branch|
|
372
400
|
jira_numbers = source_branch.scan(/\d{4,5}/i)
|
373
401
|
if jira_numbers.any?
|
@@ -377,20 +405,18 @@ module AppCommand
|
|
377
405
|
end
|
378
406
|
|
379
407
|
end
|
380
|
-
else
|
381
|
-
sanity_check_grep(source_branch, source_branch, @target_branch)
|
382
408
|
end
|
383
409
|
end
|
384
410
|
else
|
385
|
-
App::Terminal::error("
|
411
|
+
App::Terminal::error("Cannot run #{App::Terminal::format_highlight('Sanity Check')}", 'No source branches specified.', true, preceding_blank_line)
|
386
412
|
end
|
387
413
|
puts
|
388
414
|
end
|
389
415
|
|
390
|
-
def build_services
|
416
|
+
def build_services(preceding_blank_line = true)
|
391
417
|
services_to_build = []
|
392
418
|
directories_to_build = []
|
393
|
-
changed_files = App::Terminal::command_capture("git diff origin/#{App::Git::MASTER} --name-only", App::Config.param(ConfigUnique::WORKSTATION_PATH_TO_BP_CODE))
|
419
|
+
changed_files = App::Terminal::command_capture("git diff origin/#{App::Git::MASTER} --name-only", App::Config.param(ConfigUnique::WORKSTATION_PATH_TO_BP_CODE), false, false)
|
394
420
|
if changed_files[0] != ''
|
395
421
|
puts
|
396
422
|
changed_files[0].split("\n").each do |file|
|
@@ -425,12 +451,16 @@ module AppCommand
|
|
425
451
|
end
|
426
452
|
end
|
427
453
|
if services_to_build.any?
|
428
|
-
App::Terminal::info("Please #{App::Terminal::
|
454
|
+
App::Terminal::info("Please build the following #{App::Terminal::format_highlight('Services')} before committing to #{App::Terminal::format_branch(App::Git::MASTER)}:", build_text, preceding_blank_line)
|
429
455
|
puts
|
430
456
|
puts command_line_command
|
431
457
|
puts
|
432
458
|
else
|
433
|
-
|
459
|
+
if changed_files[0] != ''
|
460
|
+
App::Terminal::info("No #{App::Terminal::format_highlight('Services')} need building. The #{App::Terminal::format_highlight('only', true)} files changed between #{App::Terminal::format_branch(@target_branch)} and origin/#{App::Terminal::format_branch(App::Git::MASTER)} are:", changed_files[0], preceding_blank_line)
|
461
|
+
else
|
462
|
+
App::Terminal::info("No #{App::Terminal::format_highlight('Services')} need building.", nil, preceding_blank_line)
|
463
|
+
end
|
434
464
|
end
|
435
465
|
end
|
436
466
|
|
data/lib/routes/git_update.rb
CHANGED
@@ -41,10 +41,10 @@ module AppCommand
|
|
41
41
|
if current_branch != App::Git::MASTER
|
42
42
|
commands << "git checkout #{App::Git::MASTER}"
|
43
43
|
end
|
44
|
-
commands << "git pull origin #{App::Git::MASTER}"
|
44
|
+
commands << "git pull origin #{App::Git::MASTER} --no-edit"
|
45
45
|
if current_branch != App::Git::MASTER
|
46
46
|
commands << "git checkout #{current_branch}"
|
47
|
-
commands << "git pull origin #{current_branch}"
|
47
|
+
commands << "git pull origin #{current_branch} --no-edit"
|
48
48
|
commands << 'git merge master --no-edit'
|
49
49
|
end
|
50
50
|
results = App::Terminal::command(commands, repo_dir)
|
@@ -52,7 +52,7 @@ module AppCommand
|
|
52
52
|
if results[3] == false
|
53
53
|
@git.ask_to_setup_remote_tracking(current_branch, repo_dir)
|
54
54
|
end
|
55
|
-
@git.check_for_conflicts(results[4], "Unable to successfully merge #{App::Terminal::format_branch(App::Git::MASTER)} into #{App::Terminal::format_branch(current_branch)} on #{App::Terminal::format_directory(@git.get_repo_shorthand(repo_dir))}")
|
55
|
+
@git.check_for_conflicts(results[4], repo_dir, "Unable to successfully merge #{App::Terminal::format_branch(App::Git::MASTER)} into #{App::Terminal::format_branch(current_branch)} on #{App::Terminal::format_directory(@git.get_repo_shorthand(repo_dir))}")
|
56
56
|
end
|
57
57
|
if @opts[:push] && current_branch != App::Git::MASTER
|
58
58
|
App::Terminal::command("git push origin #{current_branch}", repo_dir)
|
data/lib/routes/scripts_sonar.rb
CHANGED
@@ -94,7 +94,7 @@ module AppCommand
|
|
94
94
|
|
95
95
|
def check_phpcs_is_installed
|
96
96
|
App::Terminal::output("Checking if #{App::Terminal::format_highlight('phpcs')} is installed...")
|
97
|
-
result = App::Terminal::command_capture('phpcs --version',
|
97
|
+
result = App::Terminal::command_capture('phpcs --version', App::Config.param(ConfigUnique::WORKSTATION_PATH_TO_BP_CODE), false, false)
|
98
98
|
result = result[0].split(' ')
|
99
99
|
unless result[0].downcase == 'php_codesniffer'
|
100
100
|
App::Terminal::error("#{App::Terminal::format_highlight('phpcs')} is not installed")
|
data/lib/routes/test.rb
CHANGED
@@ -13,12 +13,10 @@ module AppCommand
|
|
13
13
|
|
14
14
|
def opts_validate
|
15
15
|
|
16
|
-
|
16
|
+
App::UtilsRoutes::max_one_flag(@opts)
|
17
17
|
|
18
|
-
if flags_set
|
19
|
-
|
20
|
-
elsif flags_set == 0
|
21
|
-
@opts[:php] = true
|
18
|
+
if App::UtilsRoutes::flags_set(@opts) == 0
|
19
|
+
@opts[:php] == true
|
22
20
|
end
|
23
21
|
|
24
22
|
end
|
@@ -41,6 +39,7 @@ module AppCommand
|
|
41
39
|
|
42
40
|
def run_cucumber
|
43
41
|
|
42
|
+
App::Terminal::info("Running #{App::Terminal::format_action('Cucumber Tests')} on VM \xe2\x80\x94 #{App::Terminal::format_highlight("#{App::Config.param(ConfigUnique::VM_IP)}")}")
|
44
43
|
App::Terminal::info('Not yet implemented')
|
45
44
|
|
46
45
|
end
|
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION = '2.
|
1
|
+
VERSION = '2.7.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brightpearl-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Albert Rannetsperger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: columnist
|