brightpearl-cli 2.6.0 → 2.7.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/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
|