brightpearl-cli 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +5 -13
  2. data/bin/bp +1 -1
  3. data/bin/brightpearl +1 -1
  4. data/lib/brightpearl_cli.rb +161 -168
  5. data/lib/core/api.rb +1 -1
  6. data/lib/core/config.rb +10 -133
  7. data/lib/core/config_unique.rb +113 -0
  8. data/lib/core/encrypter.rb +6 -6
  9. data/lib/core/enums.rb +1 -1
  10. data/lib/core/git.rb +123 -108
  11. data/lib/core/git_delete.rb +89 -0
  12. data/lib/core/jira.rb +2 -2
  13. data/lib/core/mysql.rb +14 -14
  14. data/lib/core/pom.rb +129 -0
  15. data/lib/core/terminal.rb +28 -8
  16. data/lib/core/tools.rb +6 -6
  17. data/lib/core/utils_files.rb +92 -0
  18. data/lib/core/utils_routes.rb +25 -0
  19. data/lib/core/utils_strings.rb +45 -0
  20. data/lib/core/validate.rb +1 -1
  21. data/lib/routes/build.rb +16 -17
  22. data/lib/routes/dummy_order.rb +5 -5
  23. data/lib/routes/fix.rb +49 -0
  24. data/lib/routes/git_branch.rb +6 -6
  25. data/lib/routes/git_checkout.rb +42 -33
  26. data/lib/routes/git_delete.rb +8 -62
  27. data/lib/routes/git_merge.rb +198 -111
  28. data/lib/routes/git_pull.rb +11 -11
  29. data/lib/routes/git_push.rb +21 -12
  30. data/lib/routes/git_stash.rb +13 -8
  31. data/lib/routes/git_update.rb +17 -22
  32. data/lib/routes/jira.rb +3 -3
  33. data/lib/routes/production_logs.rb +12 -12
  34. data/lib/routes/reset.rb +1 -1
  35. data/lib/routes/review.rb +6 -5
  36. data/lib/routes/scripts_api_docs.rb +5 -5
  37. data/lib/routes/scripts_branch_cleaner.rb +58 -79
  38. data/lib/routes/scripts_color.rb +1 -1
  39. data/lib/routes/scripts_pom_fixer.rb +5 -62
  40. data/lib/routes/scripts_sonar.rb +82 -0
  41. data/lib/routes/setup.rb +6 -6
  42. data/lib/routes/tail.rb +5 -5
  43. data/lib/routes/test.rb +3 -3
  44. data/lib/routes/update.rb +1 -1
  45. metadata +16 -9
  46. data/lib/routes/scripts_code_sniffer.rb +0 -36
data/lib/core/config.rb CHANGED
@@ -1,45 +1,14 @@
1
1
  require 'fileutils'
2
2
  require 'parseconfig'
3
3
 
4
- module Brightpearl
4
+ module App
5
5
 
6
6
  class Config
7
7
 
8
- CONFIG_FILE = '~/.brightpearlrc'
9
-
10
- MAC = 'mac'
11
- LINUX = 'linux'
12
-
13
- WORKSTATION_IP = 'workstation_ip'
14
- WORKSTATION_OS = 'workstation_os'
15
- WORKSTATION_PATH_TO_BP_CODE = 'workstation_path_to_bp_code'
16
- WORKSTATION_PATH_TO_BP_DB = 'workstation_path_to_bp_db'
17
- VM_IP = 'vm_ip'
18
- VM_USER = 'vm_user'
19
- VM_USER_PASSWORD = 'vm_user_password'
20
- VM_ROOT = 'vm_root'
21
- VM_ROOT_PASSWORD = 'vm_root_password'
22
- VM_MYSQL_USER = 'vm_mysql_user'
23
- VM_MYSQL_PASSWORD = 'vm_mysql_password'
24
-
25
- BETA = 'beta'
26
- PREFERRED_TEXT_EDITOR = 'preferred_text_editor'
27
- GIT_USERNAME = 'git_username'
28
-
29
- CRYPT_KEY = 'crypt_key'
30
- CRYPT_HEX = 'crypt_hex'
31
- EC2_HOST = 'ec2_host'
32
- EC2_USER = 'ec2_user'
33
- EC2_PASS = 'ec2_pass'
34
-
35
8
  @params = {}
36
9
 
37
- def self.param(param_name)
38
- unless all_available_config_keys.include?(param_name)
39
- Brightpearl::Terminal::error("#{Brightpearl::Terminal::format_highlight(param_name)} is not a valid config parameter", true)
40
- end
41
- @params[param_name]
42
- end
10
+ extend ConfigUnique
11
+ include ConfigUnique
43
12
 
44
13
  def self.initialize
45
14
  if config_file_exists?
@@ -50,7 +19,7 @@ module Brightpearl
50
19
  end
51
20
 
52
21
  def self.config_file_exists?
53
- unless File.exists?(File.expand_path(CONFIG_FILE))
22
+ unless File.exists? ("#{File.expand_path(CONFIG_FILE)}")
54
23
  return false
55
24
  end
56
25
  true
@@ -71,53 +40,19 @@ module Brightpearl
71
40
 
72
41
  def self.first_journey_message
73
42
  puts
74
- puts "Thank you for installing the #{Brightpearl::Terminal::format_highlight('brightpearl-cli')} ruby gem."
43
+ puts "Thank you for installing the #{App::Terminal::format_highlight("#{GEM_NAME}-cli")} ruby gem."
75
44
  puts "CLI stands for 'Command Line Interface'."
76
45
  puts
77
46
  puts "The first thing you'll need to do is setup your configuration file."
78
- puts "The file is located at: #{Brightpearl::Terminal::format_directory('~/.brightpearlrc')}"
47
+ puts "The file is located at: #{App::Terminal::format_directory(App::Config)}"
79
48
  puts
80
49
  puts "You probably won't have this file so the program will create it for you."
81
50
  puts "\n"
82
- unless Brightpearl::Terminal::prompt_yes_no('Create configuration file?')
83
- Brightpearl::Terminal::abort
51
+ unless App::Terminal::prompt_yes_no('Create configuration file?')
52
+ App::Terminal::abort
84
53
  end
85
54
  end
86
55
 
87
- def self.config_file_create
88
- File.open("#{File.expand_path(CONFIG_FILE)}", 'w') { |file|
89
- file.write("# CONFIGURATION FILE -- Use this file to configure brightpearl-cli\n")
90
- file.write("\n")
91
- file.write("#{WORKSTATION_IP}=172.27.X.X\n")
92
- file.write("#{WORKSTATION_OS}=linux\n")
93
- file.write("#{WORKSTATION_PATH_TO_BP_CODE}=/brightpearl-source/brightpearl-code\n")
94
- file.write("#{WORKSTATION_PATH_TO_BP_DB}=/brightpearl-source/brightpearl-db\n")
95
- file.write("\n")
96
- file.write("#{VM_IP}=172.27.X.X\n")
97
- file.write("#{VM_USER}=\n")
98
- file.write("#{VM_USER_PASSWORD}=\n")
99
- file.write("#{VM_ROOT}=root\n")
100
- file.write("#{VM_ROOT_PASSWORD}=peXXXXXXXre\n")
101
- file.write("#{VM_MYSQL_USER}=root\n")
102
- file.write("#{VM_MYSQL_PASSWORD}=peXXXXXXXre\n")
103
- file.write("\n")
104
- file.write("# Usually vi, vim or nano\n")
105
- file.write("#{PREFERRED_TEXT_EDITOR}=\n")
106
- file.write("\n")
107
- file.write("# Found by running $ git config user.name\n")
108
- file.write("#{GIT_USERNAME}=\n")
109
- file.write("\n")
110
- file.write("#{CRYPT_KEY}=\n")
111
- file.write("#{CRYPT_HEX}=\n")
112
- file.write("#{EC2_HOST}=\n")
113
- file.write("#{EC2_USER}=\n")
114
- file.write("#{EC2_PASS}=\n")
115
- file.write("\n")
116
- file.write("# BETA FEATURES -- Set to TRUE to enable beta features -- NOT RECOMMENDED!\n")
117
- file.write("#{BETA}=false\n")
118
- }
119
- end
120
-
121
56
  def self.config_file_edit
122
57
  system("nano #{File.expand_path(CONFIG_FILE)}")
123
58
  end
@@ -138,32 +73,17 @@ module Brightpearl
138
73
  end
139
74
  error_text = error_text[0..-2]
140
75
  end
141
- workstation_os = Brightpearl::Config.param(Brightpearl::Config::WORKSTATION_OS)
142
- unless workstation_os.downcase == MAC || workstation_os.downcase == LINUX
143
- unless error_text == ''
144
- error_text = "#{error_text}\n\n"
145
- end
146
- error_text = "#{error_text}\x1B[38;5;196mThe value for \x1B[38;5;240m#{WORKSTATION_OS}\x1B[38;5;196m must be either: \x1B[38;5;84m#{MAC}\x1B[38;5;196m or \x1B[38;5;84m#{LINUX}\x1B[38;5;196m\x1B[0m\n"
147
- end
148
- code_repo = Brightpearl::Config.param(Brightpearl::Config::WORKSTATION_PATH_TO_BP_CODE)
149
- db_repo = Brightpearl::Config.param(Brightpearl::Config::WORKSTATION_PATH_TO_BP_DB)
150
- unless File.directory?(code_repo)
151
- error_text = "#{error_text}The following is NOT a valid directory: \x1B[0m#{code_repo}\x1B[90m\n"
152
- end
153
- unless File.directory?(db_repo)
154
- error_text = "#{error_text}The following is NOT a valid directory: \x1B[0m#{db_repo}\x1B[90m\n"
155
- end
156
76
  unless error_text == ''
157
77
  show_error_message(error_text)
158
78
  end
159
79
  if show_success_message
160
- Brightpearl::Terminal::success('Configuration parameters are correct.', "You are now ready to start using this utility.\nStart by typing #{Brightpearl::Terminal::format_command('brightpearl --help')} (or #{Brightpearl::Terminal::format_command('bp -h')}).")
80
+ App::Terminal::success('Configuration parameters are correct.', "You are now ready to start using this utility.\nStart by typing #{App::Terminal::format_command("#{GEM_NAME} --help")} (or #{App::Terminal::format_command("#{GEM_NAME} -h")}).")
161
81
  exit
162
82
  end
163
83
  end
164
84
 
165
85
  def self.show_error_message(error_text)
166
- Brightpearl::Terminal::error('Your configuration parameters are invalid.', "#{error_text}\nYou can fix this by running #{Brightpearl::Terminal::format_command('brightpearl setup')} (or #{Brightpearl::Terminal::format_command('bp x')}).")
86
+ App::Terminal::error('Your configuration parameters are invalid.', "#{error_text}\n\nYou can fix this by running #{App::Terminal::format_command("#{GEM_NAME} setup")} (or #{App::Terminal::format_command("#{GEM_NAME} x")}).")
167
87
  exit
168
88
  end
169
89
 
@@ -177,49 +97,6 @@ module Brightpearl
177
97
  missing_keys
178
98
  end
179
99
 
180
- def self.required_config_keys
181
- [
182
- WORKSTATION_IP,
183
- WORKSTATION_OS,
184
- WORKSTATION_PATH_TO_BP_CODE,
185
- WORKSTATION_PATH_TO_BP_DB,
186
- VM_IP,
187
- VM_USER,
188
- VM_USER_PASSWORD,
189
- VM_ROOT,
190
- VM_ROOT_PASSWORD,
191
- VM_MYSQL_USER,
192
- VM_MYSQL_PASSWORD,
193
- PREFERRED_TEXT_EDITOR,
194
- GIT_USERNAME
195
- ]
196
- end
197
-
198
- def self.all_available_config_keys
199
- [
200
- WORKSTATION_IP,
201
- WORKSTATION_OS,
202
- WORKSTATION_PATH_TO_BP_CODE,
203
- WORKSTATION_PATH_TO_BP_DB,
204
- VM_IP,
205
- VM_USER,
206
- VM_USER_PASSWORD,
207
- VM_ROOT,
208
- VM_ROOT_PASSWORD,
209
- VM_MYSQL_USER,
210
- VM_MYSQL_PASSWORD,
211
- PREFERRED_TEXT_EDITOR,
212
- GIT_USERNAME,
213
- BETA,
214
- CRYPT_KEY,
215
- CRYPT_HEX,
216
- EC2_HOST,
217
- EC2_USER,
218
- EC2_PASS
219
- ]
220
- end
221
-
222
100
  end
223
101
 
224
-
225
102
  end
@@ -0,0 +1,113 @@
1
+ require 'fileutils'
2
+ require 'parseconfig'
3
+
4
+ module ConfigUnique
5
+
6
+ # USED BY CONFIG CLASS
7
+ CONFIG_FILE = '~/.brightpearlrc'
8
+ GEM_NAME = 'brightpearl'
9
+
10
+ # MISC
11
+ MAC = 'mac'
12
+ LINUX = 'linux'
13
+
14
+ # STORED PARAMETERS
15
+ WORKSTATION_IP = 'workstation_ip'
16
+ WORKSTATION_OS = 'workstation_os'
17
+ WORKSTATION_PATH_TO_BP_CODE = 'workstation_path_to_bp_code'
18
+ WORKSTATION_PATH_TO_BP_DB = 'workstation_path_to_bp_db'
19
+ VM_IP = 'vm_ip'
20
+ VM_USER = 'vm_user'
21
+ VM_USER_PASSWORD = 'vm_user_password'
22
+ VM_ROOT = 'vm_root'
23
+ VM_ROOT_PASSWORD = 'vm_root_password'
24
+ VM_MYSQL_USER = 'vm_mysql_user'
25
+ VM_MYSQL_PASSWORD = 'vm_mysql_password'
26
+ PREFERRED_TEXT_EDITOR = 'preferred_text_editor'
27
+ GIT_USERNAME = 'git_username'
28
+ CRYPT_KEY = 'crypt_key'
29
+ CRYPT_HEX = 'crypt_hex'
30
+ EC2_HOST = 'ec2_host'
31
+ EC2_USER = 'ec2_user'
32
+ EC2_PASS = 'ec2_pass'
33
+
34
+ def param(param_name)
35
+ unless all_available_config_keys.include?(param_name)
36
+ App::Terminal::error("#{App::Terminal::format_highlight(param_name)} is not a valid config parameter", true)
37
+ end
38
+ @params[param_name]
39
+ end
40
+
41
+ def config_file_create
42
+ File.open("#{File.expand_path(CONFIG_FILE)}", 'w') { |file|
43
+ file.write("# CONFIGURATION FILE -- Use this file to configure brightpearl-cli\n")
44
+ file.write("\n")
45
+ file.write("#{WORKSTATION_IP}=172.27.X.X\n")
46
+ file.write("#{WORKSTATION_OS}=linux\n")
47
+ file.write("#{WORKSTATION_PATH_TO_BP_CODE}=/brightpearl-source/brightpearl-code\n")
48
+ file.write("#{WORKSTATION_PATH_TO_BP_DB}=/brightpearl-source/brightpearl-db\n")
49
+ file.write("\n")
50
+ file.write("#{VM_IP}=172.27.X.X\n")
51
+ file.write("#{VM_USER}=\n")
52
+ file.write("#{VM_USER_PASSWORD}=\n")
53
+ file.write("#{VM_ROOT}=root\n")
54
+ file.write("#{VM_ROOT_PASSWORD}=peXXXXXXXre\n")
55
+ file.write("#{VM_MYSQL_USER}=root\n")
56
+ file.write("#{VM_MYSQL_PASSWORD}=peXXXXXXXre\n")
57
+ file.write("\n")
58
+ file.write("# Usually vi, vim or nano\n")
59
+ file.write("#{PREFERRED_TEXT_EDITOR}=\n")
60
+ file.write("\n")
61
+ file.write("# Found by running $ git config user.name\n")
62
+ file.write("#{GIT_USERNAME}=\n")
63
+ file.write("\n")
64
+ file.write("#{CRYPT_KEY}=\n")
65
+ file.write("#{CRYPT_HEX}=\n")
66
+ file.write("#{EC2_HOST}=\n")
67
+ file.write("#{EC2_USER}=\n")
68
+ file.write("#{EC2_PASS}=\n")
69
+ }
70
+ end
71
+
72
+ def required_config_keys
73
+ [
74
+ WORKSTATION_IP,
75
+ WORKSTATION_OS,
76
+ WORKSTATION_PATH_TO_BP_CODE,
77
+ WORKSTATION_PATH_TO_BP_DB,
78
+ VM_IP,
79
+ VM_USER,
80
+ VM_USER_PASSWORD,
81
+ VM_ROOT,
82
+ VM_ROOT_PASSWORD,
83
+ VM_MYSQL_USER,
84
+ VM_MYSQL_PASSWORD,
85
+ PREFERRED_TEXT_EDITOR,
86
+ GIT_USERNAME
87
+ ]
88
+ end
89
+
90
+ def all_available_config_keys
91
+ [
92
+ WORKSTATION_IP,
93
+ WORKSTATION_OS,
94
+ WORKSTATION_PATH_TO_BP_CODE,
95
+ WORKSTATION_PATH_TO_BP_DB,
96
+ VM_IP,
97
+ VM_USER,
98
+ VM_USER_PASSWORD,
99
+ VM_ROOT,
100
+ VM_ROOT_PASSWORD,
101
+ VM_MYSQL_USER,
102
+ VM_MYSQL_PASSWORD,
103
+ PREFERRED_TEXT_EDITOR,
104
+ GIT_USERNAME,
105
+ CRYPT_KEY,
106
+ CRYPT_HEX,
107
+ EC2_HOST,
108
+ EC2_USER,
109
+ EC2_PASS
110
+ ]
111
+ end
112
+
113
+ end
@@ -1,7 +1,7 @@
1
1
  require 'openssl'
2
2
  require 'base64'
3
3
 
4
- module Brightpearl
4
+ module App
5
5
 
6
6
  class Encrypter
7
7
 
@@ -10,11 +10,11 @@ module Brightpearl
10
10
 
11
11
  def initialize
12
12
 
13
- @key = Brightpearl::Config.param(Brightpearl::Config::CRYPT_KEY)
14
- @hex = Brightpearl::Config.param(Brightpearl::Config::CRYPT_HEX)
13
+ @key = App::Config::param(App::Config::CRYPT_KEY)
14
+ @hex = App::Config::param(App::Config::CRYPT_HEX)
15
15
 
16
16
  if @key.nil? || @hex.nil?
17
- Brightpearl::Terminal::error('Encryption keys not found', ["The command you're trying to run probably requires access to an EC2 database (or some other advanced feature).", "In order for this to work you will need valid #{Brightpearl::Terminal::format_highlight('encryption keys')}.", "Please speak to #{Brightpearl::Terminal::format_highlight('Albert')} (or team Raptor) for more info."], true)
17
+ App::Terminal::error('Encryption keys not found', ["The command you're trying to run probably requires access to an EC2 database (or some other advanced feature).", "In order for this to work you will need valid #{App::Terminal::format_highlight('encryption keys')}.", "Please speak to #{App::Terminal::format_highlight('Albert')} (or team Raptor) for more info."], true)
18
18
  end
19
19
 
20
20
  end
@@ -29,7 +29,7 @@ module Brightpearl
29
29
  e << c.final
30
30
  return Base64.encode64(e)
31
31
  rescue
32
- Brightpearl::Terminal::error('Encryption failed', "Could not encrypt string #{string == '' ? '[blank]' : Brightpearl::Terminal::format_highlight(string)} using crypt_key #{Brightpearl::Terminal::format_highlight(Brightpearl::Config.param(Brightpearl::Config::CRYPT_KEY) == '' ? '[blank]' : Brightpearl::Config.param(Brightpearl::Config::CRYPT_KEY))} and crypt_hex #{Brightpearl::Terminal::format_highlight(Brightpearl::Config.param(Brightpearl::Config::CRYPT_HEX) == '' ? '[blank]' : Brightpearl::Config.param(Brightpearl::Config::CRYPT_HEX))}")
32
+ App::Terminal::error('Encryption failed', "Could not encrypt string #{string == '' ? '[blank]' : App::Terminal::format_highlight(string)} using crypt_key #{App::Terminal::format_highlight(App::Config::param(App::Config::CRYPT_KEY) == '' ? '[blank]' : App::Config::param(App::Config::CRYPT_KEY))} and crypt_hex #{App::Terminal::format_highlight(App::Config::param(App::Config::CRYPT_HEX) == '' ? '[blank]' : App::Config::param(App::Config::CRYPT_HEX))}")
33
33
  end
34
34
 
35
35
  end
@@ -45,7 +45,7 @@ module Brightpearl
45
45
  d << c.final
46
46
  return d
47
47
  rescue
48
- Brightpearl::Terminal::error('Decryption failed', "Could not decrypt string #{string == '' ? '[blank]' : Brightpearl::Terminal::format_highlight(string)} using crypt_key #{Brightpearl::Terminal::format_highlight(Brightpearl::Config.param(Brightpearl::Config::CRYPT_KEY) == '' ? '[blank]' : Brightpearl::Config.param(Brightpearl::Config::CRYPT_KEY))} and crypt_hex #{Brightpearl::Terminal::format_highlight(Brightpearl::Config.param(Brightpearl::Config::CRYPT_HEX) == '' ? '[blank]' : Brightpearl::Config.param(Brightpearl::Config::CRYPT_HEX))}")
48
+ App::Terminal::error('Decryption failed', "Could not decrypt string #{string == '' ? '[blank]' : App::Terminal::format_highlight(string)} using crypt_key #{App::Terminal::format_highlight(App::Config::param(App::Config::CRYPT_KEY) == '' ? '[blank]' : App::Config::param(App::Config::CRYPT_KEY))} and crypt_hex #{App::Terminal::format_highlight(App::Config::param(App::Config::CRYPT_HEX) == '' ? '[blank]' : App::Config::param(App::Config::CRYPT_HEX))}")
49
49
  end
50
50
 
51
51
  end
data/lib/core/enums.rb CHANGED
@@ -1,4 +1,4 @@
1
- module Brightpearl
1
+ module App
2
2
 
3
3
  class Enum
4
4