brightpearl-cli 1.1.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 +7 -0
- data/LICENSE +22 -0
- data/README.md +21 -0
- data/bin/bp +5 -0
- data/bin/brightpearl +5 -0
- data/lib/brightpearl_cli.rb +351 -0
- data/lib/core/api.rb +7 -0
- data/lib/core/config.rb +175 -0
- data/lib/core/enums.rb +9 -0
- data/lib/core/git.rb +771 -0
- data/lib/core/jira.rb +43 -0
- data/lib/core/mysql.rb +48 -0
- data/lib/core/terminal.rb +389 -0
- data/lib/core/tools.rb +78 -0
- data/lib/core/validate.rb +7 -0
- data/lib/routes/build.rb +83 -0
- data/lib/routes/dummy_order.rb +151 -0
- data/lib/routes/git_branch.rb +55 -0
- data/lib/routes/git_checkout.rb +155 -0
- data/lib/routes/git_delete.rb +120 -0
- data/lib/routes/git_merge.rb +288 -0
- data/lib/routes/git_pull.rb +16 -0
- data/lib/routes/git_push.rb +16 -0
- data/lib/routes/git_stash.rb +27 -0
- data/lib/routes/git_update.rb +125 -0
- data/lib/routes/jira.rb +51 -0
- data/lib/routes/less.rb +37 -0
- data/lib/routes/reset.rb +33 -0
- data/lib/routes/review.rb +16 -0
- data/lib/routes/scripts_code_sniffer.rb +36 -0
- data/lib/routes/scripts_color.rb +52 -0
- data/lib/routes/setup.rb +15 -0
- data/lib/routes/tests.rb +69 -0
- data/lib/routes/update.rb +35 -0
- metadata +169 -0
@@ -0,0 +1,151 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'mysql'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module BrightpearlCommand
|
6
|
+
|
7
|
+
class DummyOrder < ::Convoy::ActionCommand::Base
|
8
|
+
|
9
|
+
SALES_ORDER = 'so'
|
10
|
+
SALES_CREDIT = 'sc'
|
11
|
+
PURCHASE_ORDER = 'po'
|
12
|
+
PURCHASE_CREDIT = 'pc'
|
13
|
+
|
14
|
+
def execute
|
15
|
+
|
16
|
+
@opts = command_options
|
17
|
+
# @database = Brightpearl::MySQL::get_database_connection
|
18
|
+
opts_validate
|
19
|
+
opts_routing
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def opts_validate
|
24
|
+
|
25
|
+
if @opts[:salesOrder]
|
26
|
+
if @opts[:salesCredit] || @opts[:purchaseOrder] || @opts[:purchaseCredit]
|
27
|
+
error_multi_order
|
28
|
+
end
|
29
|
+
elsif @opts[:salesCredit]
|
30
|
+
if @opts[:salesOrder] || @opts[:purchaseOrder] || @opts[:purchaseCredit]
|
31
|
+
error_multi_order
|
32
|
+
end
|
33
|
+
elsif @opts[:purchaseOrder]
|
34
|
+
if @opts[:salesCredit] || @opts[:salesOrder] || @opts[:purchaseCredit]
|
35
|
+
error_multi_order
|
36
|
+
end
|
37
|
+
elsif @opts[:purchaseCredit]
|
38
|
+
if @opts[:salesCredit] || @opts[:salesOrder] || @opts[:purchaseOrder]
|
39
|
+
error_multi_order
|
40
|
+
end
|
41
|
+
else
|
42
|
+
@opts[:salesOrder] = true
|
43
|
+
end
|
44
|
+
|
45
|
+
if @opts[:times].nil?
|
46
|
+
@opts[:times] = 1
|
47
|
+
elsif @opts[:times] <= 0 || @opts[:times] > 50
|
48
|
+
error_invalid_quantity
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
def opts_routing
|
54
|
+
|
55
|
+
if @opts[:salesOrder]
|
56
|
+
create_order(SALES_ORDER)
|
57
|
+
elsif @opts[:salesCredit]
|
58
|
+
create_order(SALES_CREDIT)
|
59
|
+
elsif @opts[:purchaseOrder]
|
60
|
+
create_order(PURCHASE_ORDER)
|
61
|
+
elsif @opts[:purchaseCredit]
|
62
|
+
create_order(PURCHASE_CREDIT)
|
63
|
+
else
|
64
|
+
create_order(SALES_ORDER)
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
def create_order(type = SALES_ORDER)
|
70
|
+
|
71
|
+
validate_type(type)
|
72
|
+
|
73
|
+
post_data =
|
74
|
+
{
|
75
|
+
'orderTypeCode' => 'SO',
|
76
|
+
'reference' => 'order#001',
|
77
|
+
'priceListId' => 2,
|
78
|
+
'invoices' => [
|
79
|
+
{
|
80
|
+
'taxDate' => '2014-10-19T12:57:25+00:00'
|
81
|
+
}
|
82
|
+
],
|
83
|
+
'placedOn' => '2014-10-19T11:12:24.000+01:00',
|
84
|
+
'orderStatus' => {
|
85
|
+
'orderStatusId' => 1
|
86
|
+
},
|
87
|
+
'delivery' => {
|
88
|
+
'deliveryDate' => '2014-10-19T11:12:24.000+01:00',
|
89
|
+
'shippingMethodId' => Brightpearl::MySQL::get_random_shipping_id
|
90
|
+
},
|
91
|
+
'currency' => {
|
92
|
+
'orderCurrencyCode' => 'GBP'
|
93
|
+
},
|
94
|
+
'parties' => {
|
95
|
+
'customer' => {
|
96
|
+
'contactId' => Brightpearl::MySQL::get_random_customer_id
|
97
|
+
}
|
98
|
+
},
|
99
|
+
'assignment' => {
|
100
|
+
'current' => {
|
101
|
+
'channelId' => 1,
|
102
|
+
'leadSourceId' => 1,
|
103
|
+
'staffOwnerContactId' => 4
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}.to_json
|
107
|
+
|
108
|
+
puts
|
109
|
+
puts "\x1B[33m#{post_data}\x1B[0m"
|
110
|
+
puts
|
111
|
+
exit
|
112
|
+
|
113
|
+
begin
|
114
|
+
response = RestClient.post(
|
115
|
+
"http://#{Brightpearl::Config.param(Brightpearl::Config::VM_IP)}:#{Brightpearl::Enum::PORT_ORDER_SERVICE}/order-service/app/order",
|
116
|
+
post_data,
|
117
|
+
:content_type => :json, :accept => :json, :'account-version' => 'admindev', :'effective-user-id' => 6
|
118
|
+
)
|
119
|
+
rescue
|
120
|
+
puts response
|
121
|
+
ensure
|
122
|
+
puts response
|
123
|
+
end
|
124
|
+
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
def validate_type(type)
|
129
|
+
unless [
|
130
|
+
SALES_ORDER,
|
131
|
+
SALES_CREDIT,
|
132
|
+
PURCHASE_ORDER,
|
133
|
+
PURCHASE_CREDIT
|
134
|
+
].include?(type)
|
135
|
+
raise RuntimeError, 'Invalid order type.'
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def error_multi_order
|
140
|
+
puts "You can only create \x1B[35mONE\x1B[0m type of order at the time. Please specify \x1B[35mONLY ONE\x1B[0m of the following: \x1B[90m-s, -S, -p, -P\x1B[0m"
|
141
|
+
exit
|
142
|
+
end
|
143
|
+
|
144
|
+
def error_invalid_quantity
|
145
|
+
puts "You can only create between 1-50 orders at a time. You tried to create #{@opts[:times]}."
|
146
|
+
exit
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module BrightpearlCommand
|
2
|
+
|
3
|
+
class GitBranch < ::Convoy::ActionCommand::Base
|
4
|
+
|
5
|
+
def execute
|
6
|
+
|
7
|
+
@opts = command_options
|
8
|
+
@sort = Brightpearl::Git::SORT_REFNAME
|
9
|
+
@git = Brightpearl::Git.new
|
10
|
+
opts_validate
|
11
|
+
opts_routing
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def opts_validate
|
16
|
+
|
17
|
+
if @opts[:remote] && @opts[:local]
|
18
|
+
# @todo Change to new style error messages.
|
19
|
+
abort('Cannot list both local & remote branches simultaneously. Please choose one option only.')
|
20
|
+
end
|
21
|
+
@sort = Brightpearl::Git::SORT_DATE if @opts[:sortDate]
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def opts_routing
|
26
|
+
|
27
|
+
if @opts[:local]
|
28
|
+
list_local_branches
|
29
|
+
elsif @opts[:remote]
|
30
|
+
list_remote_branches
|
31
|
+
else
|
32
|
+
if @opts[:sortDate]
|
33
|
+
system('bp g b -ld')
|
34
|
+
else
|
35
|
+
system('bp g b -l')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# List local branches.
|
42
|
+
# @return void
|
43
|
+
def list_local_branches
|
44
|
+
@git.show_branches(@sort, Brightpearl::Git::LOCAL)
|
45
|
+
end
|
46
|
+
|
47
|
+
# List remote branches.
|
48
|
+
# @return void
|
49
|
+
def list_remote_branches
|
50
|
+
@git.show_branches(@sort, Brightpearl::Git::REMOTE)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
module BrightpearlCommand
|
2
|
+
|
3
|
+
class GitCheckout < ::Convoy::ActionCommand::Base
|
4
|
+
|
5
|
+
def execute
|
6
|
+
|
7
|
+
@opts = command_options
|
8
|
+
@args = arguments
|
9
|
+
@git = Brightpearl::Git.new
|
10
|
+
opts_validate
|
11
|
+
opts_routing
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def opts_validate
|
16
|
+
|
17
|
+
unless @args.any?
|
18
|
+
if @opts[:branch] || @opts[:branch_origin]
|
19
|
+
puts 'You must specify a branch name.'
|
20
|
+
else
|
21
|
+
puts "\n\x1B[41m ERROR \x1B[0m You must specify a branch to checkout. Here is a list of your \x1B[35mLOCAL BRANCHES\x1B[0m"
|
22
|
+
Brightpearl::Git.new.show_branches(Brightpearl::Git::SORT_REFNAME, Brightpearl::Git::LOCAL)
|
23
|
+
end
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def opts_routing
|
30
|
+
|
31
|
+
if @opts[:branch]
|
32
|
+
create_branch(false)
|
33
|
+
elsif @opts[:branch_origin]
|
34
|
+
create_branch(true)
|
35
|
+
else
|
36
|
+
checkout_branch
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# Creates a branch on both the 'code' & 'db' repos.
|
42
|
+
# @return void
|
43
|
+
def create_branch(push_to_origin = false)
|
44
|
+
|
45
|
+
new_branch_name = @args[0]
|
46
|
+
source_branch_name = @args[1].nil? ? Brightpearl::Git::MASTER : @args[1]
|
47
|
+
|
48
|
+
Brightpearl::Terminal::info("Checking that branch #{Brightpearl::Terminal::format_branch(new_branch_name)} doesn't already exist")
|
49
|
+
if @git.branch_exists_anywhere(new_branch_name)
|
50
|
+
Brightpearl::Terminal::error('Target branch already exists', "Cannot create branch because a branch named #{Brightpearl::Terminal::format_branch(new_branch_name)}\x1B[38;5;240m is already in use somewhere.", true)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Validate that source branch (if not MASTER) exists locally.
|
54
|
+
if source_branch_name != Brightpearl::Git::MASTER
|
55
|
+
# Check branch exists anywhere.
|
56
|
+
unless @git.branch_exists_anywhere(source_branch_name)
|
57
|
+
Brightpearl::Terminal::error("Source branch doesn't exist", "Cannot cut from branch #{Brightpearl::Terminal::format_branch(source_branch_name)}\x1B[38;5;240m because it doesn't exist.", true)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
@git.stash_staged_changes
|
62
|
+
if Brightpearl::Terminal::prompt_yes_no('Create new branch?', "You're about to cut branch #{Brightpearl::Terminal::format_branch(new_branch_name)}\x1B[38;5;240m from #{Brightpearl::Terminal::format_branch(source_branch_name)}\x1B[38;5;240m#{push_to_origin ? ' and push it to origin.' : ''}")
|
63
|
+
source_branch_final = []
|
64
|
+
source_branch_data = @git.branch_data(source_branch_name)
|
65
|
+
source_branch_data.each do |branch_data|
|
66
|
+
if branch_data[:"#{Brightpearl::Git::BRANCH_EXISTS}"]
|
67
|
+
sb = source_branch_name
|
68
|
+
source_branch_final << source_branch_name
|
69
|
+
else
|
70
|
+
sb = Brightpearl::Git::MASTER
|
71
|
+
source_branch_final << Brightpearl::Git::MASTER
|
72
|
+
if source_branch_name != Brightpearl::Git::MASTER
|
73
|
+
Brightpearl::Terminal::warning('Branch not found', ["The repo: #{Brightpearl::Terminal::format_directory(branch_data[:"#{Brightpearl::Git::BRANCH_LOCATION}"])}\x1B[38;5;240m doesn't have have a branch called #{Brightpearl::Terminal::format_branch(source_branch_name)}", "Because of this, branch for this repo will be cut from #{Brightpearl::Terminal::format_branch(Brightpearl::Git::MASTER)}\x1B[38;5;240m instead."])
|
74
|
+
end
|
75
|
+
end
|
76
|
+
commands = [
|
77
|
+
"git checkout #{sb}"
|
78
|
+
]
|
79
|
+
if branch_data[:"#{Brightpearl::Git::BRANCH_HAS_UPSTREAM}"]
|
80
|
+
commands << 'git pull'
|
81
|
+
end
|
82
|
+
commands << "git checkout -b #{new_branch_name}"
|
83
|
+
if push_to_origin
|
84
|
+
commands << "git push --set-upstream origin #{new_branch_name}"
|
85
|
+
end
|
86
|
+
Brightpearl::Terminal::command(commands, branch_data[:"#{Brightpearl::Git::BRANCH_LOCATION}"])
|
87
|
+
end
|
88
|
+
|
89
|
+
if source_branch_final[0] == source_branch_final[1]
|
90
|
+
source_branch_final = source_branch_final[0]
|
91
|
+
else
|
92
|
+
source_branch_final = "#{source_branch_final[0]}/#{source_branch_final[1]}"
|
93
|
+
end
|
94
|
+
Brightpearl::Terminal::success('Branch created!', "Branch #{Brightpearl::Terminal::format_branch(new_branch_name)}\x1B[38;5;240m has been successfully cut from #{Brightpearl::Terminal::format_branch(source_branch_final)}")
|
95
|
+
else
|
96
|
+
Brightpearl::Terminal::abort(nil, nil, true, false)
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
# Checks out a branch for both /code & /db.
|
102
|
+
# @return void
|
103
|
+
def checkout_branch
|
104
|
+
# todo
|
105
|
+
puts
|
106
|
+
puts "\x1B[31mTODO!\x1B[0m Must alert user that if DB branch doesn't exist, A) Create it? and B) If not, inform you are on 2 different branches."
|
107
|
+
puts
|
108
|
+
branch_to_checkout = @args[0]
|
109
|
+
branch_data = @git.branch_data(branch_to_checkout)
|
110
|
+
# If branch is already checked out.
|
111
|
+
if branch_data[0][:"#{Brightpearl::Git::BRANCH_IS_CURRENT}"] && branch_data[1][:"#{Brightpearl::Git::BRANCH_IS_CURRENT}"]
|
112
|
+
Brightpearl::Terminal::info("You are already on branch #{Brightpearl::Terminal::format_branch(branch_to_checkout)}")
|
113
|
+
if @opts[:update] || @opts[:updatePush]
|
114
|
+
Brightpearl::Terminal::info("To update the branch, run: #{Brightpearl::Terminal::format_command('bp g u')}", nil, false)
|
115
|
+
end
|
116
|
+
@git.check_for_stash
|
117
|
+
exit
|
118
|
+
end
|
119
|
+
@git.stash_staged_changes
|
120
|
+
# If branch doesn't exist.
|
121
|
+
if branch_data[0][:"#{Brightpearl::Git::BRANCH_EXISTS}"] == false && branch_data[1][:"#{Brightpearl::Git::BRANCH_EXISTS}"] == false
|
122
|
+
Brightpearl::Terminal::error("The branch you're trying to checkout #{Brightpearl::Terminal::format_branch(branch_to_checkout)} doesn't exist", 'Please check your spelling and try again.', true, false)
|
123
|
+
end
|
124
|
+
count = 0
|
125
|
+
branch_data.each do |branch_data_inner|
|
126
|
+
if branch_data_inner[:"#{Brightpearl::Git::BRANCH_EXISTS}"] == false
|
127
|
+
next
|
128
|
+
end
|
129
|
+
commands = []
|
130
|
+
if @opts[:update] || @opts[:updatePush]
|
131
|
+
commands << "git checkout #{Brightpearl::Git::MASTER}"
|
132
|
+
commands << 'git pull'
|
133
|
+
end
|
134
|
+
unless branch_data_inner[:"#{Brightpearl::Git::BRANCH_IS_CURRENT}"]
|
135
|
+
commands << "git checkout #{branch_to_checkout}"
|
136
|
+
end
|
137
|
+
if @opts[:update] || @opts[:updatePush]
|
138
|
+
if branch_data[count][:"#{Brightpearl::Git::BRANCH_HAS_UPSTREAM}"]
|
139
|
+
commands << 'git pull'
|
140
|
+
else
|
141
|
+
Brightpearl::Terminal::warning('Branch has no upstream', ["You can push to origin by running: #{Brightpearl::Terminal::format_command("git push --set-upstream origin #{branch_data_inner[:"#{Brightpearl::Git::BRANCH_NAME}"]}")}"])
|
142
|
+
end
|
143
|
+
commands << "git merge #{Brightpearl::Git::MASTER}"
|
144
|
+
end
|
145
|
+
if @opts[:updatePush]
|
146
|
+
commands << 'git push'
|
147
|
+
end
|
148
|
+
Brightpearl::Terminal::command(commands, branch_data_inner[:"#{Brightpearl::Git::BRANCH_LOCATION}"])
|
149
|
+
count = count + 1
|
150
|
+
end
|
151
|
+
@git.check_for_stash
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
module BrightpearlCommand
|
2
|
+
|
3
|
+
class GitDelete < ::Convoy::ActionCommand::Base
|
4
|
+
|
5
|
+
def execute
|
6
|
+
@opts = command_options
|
7
|
+
@args = arguments
|
8
|
+
@git = Brightpearl::Git.new
|
9
|
+
opts_validate
|
10
|
+
opts_routing
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
def opts_validate
|
15
|
+
|
16
|
+
if @opts[:delete_local] == false && @opts[:delete_remote] == false && @opts[:delete_both] == false
|
17
|
+
Brightpearl::Terminal::error('You must specify one of the following flags:', [
|
18
|
+
"-l --delete-local \xe2\x86\x92 Delete local branch",
|
19
|
+
"-r --delete-remote \xe2\x86\x92 Delete remote branch",
|
20
|
+
"-b --delete-both \xe2\x86\x92 Delete both local & remote branches"
|
21
|
+
], true)
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
unless @args.any?
|
26
|
+
@args[0] = @git.current_branch_for_repo(Brightpearl::Config.param(Brightpearl::Config::WORKSTATION_PATH_TO_BP_CODE))
|
27
|
+
end
|
28
|
+
|
29
|
+
if @args[0] == 'master'
|
30
|
+
puts "You cannot delete \x1B[32m[master]\x1B[0m"
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
def opts_routing
|
37
|
+
|
38
|
+
if @opts[:delete_local]
|
39
|
+
delete_local
|
40
|
+
elsif @opts[:delete_remote]
|
41
|
+
delete_remote
|
42
|
+
elsif @opts[:delete_both]
|
43
|
+
delete_both
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
def delete_local
|
49
|
+
# todo
|
50
|
+
puts
|
51
|
+
puts "\x1B[31mTODO!\x1B[0m Must check that branch is up-to-date with it's remote counter-part, otherwise DO NOT delete!"
|
52
|
+
puts "\x1B[31mTODO!\x1B[0m Must check branch even exists."
|
53
|
+
Brightpearl::Terminal::prompt_yes("You're about to \x1B[35mLOCALLY DELETE\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m")
|
54
|
+
@git.repo_loop.each do |repo_dir|
|
55
|
+
commands = []
|
56
|
+
if @git.current_branch_for_repo(repo_dir) == @args[0]
|
57
|
+
commands << 'git checkout master'
|
58
|
+
end
|
59
|
+
commands << "git branch -d #{@args[0]}"
|
60
|
+
Brightpearl::Terminal::command(commands, repo_dir)
|
61
|
+
end
|
62
|
+
puts "\nSuccessfully \x1B[35mLOCALLY DELETED\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m\n\n"
|
63
|
+
end
|
64
|
+
|
65
|
+
def delete_remote
|
66
|
+
# todo
|
67
|
+
puts
|
68
|
+
puts "\x1B[31mTODO!\x1B[0m Must check branch even exists."
|
69
|
+
Brightpearl::Terminal::prompt_yes("You're about to \x1B[35mREMOTELY DELETE\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m")
|
70
|
+
@git.repo_loop.each do |repo_dir|
|
71
|
+
unless @git.branch_exists(@args[0], repo_dir, Brightpearl::Git::REMOTE)
|
72
|
+
puts "Branch \x1B[32m[#{@args[0]}]\x1B[0m not found in: \x1B[33m#{repo_dir}\x1B[0m. Aborting \x1B[35mREMOTE DELETE\x1B[0m for this repo."
|
73
|
+
next
|
74
|
+
end
|
75
|
+
commands = [
|
76
|
+
"git branch --unset-upstream #{@args[0]}",
|
77
|
+
"git push origin --delete #{@args[0]}",
|
78
|
+
]
|
79
|
+
Brightpearl::Terminal::command(commands, repo_dir)
|
80
|
+
end
|
81
|
+
|
82
|
+
puts "\nSuccessfully \x1B[35mREMOTELY DELETED\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m\n\n"
|
83
|
+
new_branch_name = @args[0].split('-')
|
84
|
+
new_branch_name = "MERGED-#{new_branch_name[new_branch_name.count - 1]}"
|
85
|
+
Brightpearl::Terminal::prompt_yes("Would you like to \x1B[35mRENAME\x1B[0m \x1B[32m[#{@args[0]}]\x1B[0m to \x1B[32m[#{new_branch_name}]\x1B[0m")
|
86
|
+
|
87
|
+
@git.repo_loop.each do |repo_dir|
|
88
|
+
unless @git.branch_exists(@args[0], repo_dir, Brightpearl::Git::LOCAL)
|
89
|
+
puts "Branch \x1B[32m[#{@args[0]}]\x1B[0m not found in: \x1B[33m#{repo_dir}\x1B[0m. Aborting \x1B[35mRENAME\x1B[0m for this repo."
|
90
|
+
next
|
91
|
+
end
|
92
|
+
commands = [
|
93
|
+
"git branch -m #{@args[0]} #{new_branch_name}",
|
94
|
+
]
|
95
|
+
Brightpearl::Terminal::command(commands, repo_dir)
|
96
|
+
end
|
97
|
+
puts
|
98
|
+
end
|
99
|
+
|
100
|
+
def delete_both
|
101
|
+
# todo
|
102
|
+
puts
|
103
|
+
puts "\x1B[31mTODO!\x1B[0m Must check that branch is up-to-date with it's remote counter-part, otherwise DO NOT delete!"
|
104
|
+
puts "\x1B[31mTODO!\x1B[0m Must check branch even exists."
|
105
|
+
Brightpearl::Terminal::prompt_yes("You're about to \x1B[35mLOCALLY & REMOTELY DELETE\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m")
|
106
|
+
@git.repo_loop.each do |repo_dir|
|
107
|
+
commands = []
|
108
|
+
if @git.current_branch_for_repo(repo_dir) == @args[0]
|
109
|
+
commands << 'git checkout master'
|
110
|
+
end
|
111
|
+
commands << "git branch -d #{@args[0]}"
|
112
|
+
commands << "git push origin --delete #{@args[0]}"
|
113
|
+
Brightpearl::Terminal::command(commands, repo_dir)
|
114
|
+
end
|
115
|
+
puts "\nSuccessfully \x1B[35mLOCALLY & REMOTELY DELETED\x1B[0m branch \x1B[32m[#{@args[0]}]\x1B[0m\n\n"
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|