firespring_dev_commands 2.1.26.pre.alpha.2 → 2.1.26.pre.alpha.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b68163bb71bf29450c83939ecdc3181f8003ac39731839c0c67dd5808c2f9331
4
- data.tar.gz: c956a7f6c49ce1d0478df460e54d24a5c12598b4c24b905f959e489c289515f3
3
+ metadata.gz: 63e2a31f96bc3e440c404c63414e94fc30f7a00bfc120f8375b60297ee2e1ffa
4
+ data.tar.gz: 5f9f3e37d9c51930359adefb194906c325152dc239b52bb8b281b35f4fa287f2
5
5
  SHA512:
6
- metadata.gz: 7f62bd98a204af676eb9bec3cf64c4783c20ad265115df7fbf4e13964a5f5bd9ce3ceb89f3ecb505c478f06fcab1b7635814ebeb999e62e133c63728bf6d7f7e
7
- data.tar.gz: 92b52d27ab0b6a15ebdb16098296259010284326d20719d45d10b41d4f0e73801ec00b1a48ad7f7a0cd941db47b4541bbdad7024cf593aff403324791908a8bb
6
+ metadata.gz: 73d72bd8822cb2547109d02a6ae5b5c41dfd9396d1bf8a3b7f330eb34b86f1f1ef9f1c2ad3e2c01b0a38cc9fa1347355ed7b91000978b43a1e94b599bb4972a5
7
+ data.tar.gz: 461631bb28facb7d699ae86f2dd6cf119da3946a7b4d38533b6a366d7e567b6a71cfdcfb4547f3622bb8c41e9f9e4dd726c82a1f5d7a298b218b2d4bd65a6d97
@@ -187,5 +187,14 @@ module Dev
187
187
  return false
188
188
  end
189
189
  end
190
+
191
+ # Center the string and pad on either side with the given padding character
192
+ def center_pad(string = '', pad: '-', len: 80)
193
+ string = " #{string} " unless string.strip.empty?
194
+ center_dash = len / 2
195
+ string = string.to_s
196
+ center_str = string.length / 2
197
+ string.rjust(center_dash + center_str - 1, pad).ljust(len - 1, pad)
198
+ end
190
199
  end
191
200
  end
@@ -5,9 +5,8 @@ module Dev
5
5
  END_OF_LIFE_API_URL = 'https://endoflife.date/api'.freeze
6
6
 
7
7
  # Config object for setting top level git config options
8
- Config = Struct.new(:check_aws_resources, :product_versions, :manual_dates) do
8
+ Config = Struct.new(:product_versions, :manual_dates) do
9
9
  def initialize
10
- self.check_aws_resources = false
11
10
  self.product_versions = []
12
11
  self.manual_dates = {}
13
12
  end
@@ -27,10 +26,9 @@ module Dev
27
26
  alias_method :configure, :config
28
27
  end
29
28
 
30
- attr_accessor :url, :products, :check_aws_resources, :product_versions
29
+ attr_accessor :url, :products, :product_versions
31
30
 
32
- def initialize(check_aws_resources: self.class.config.check_aws_resources, product_versions: self.class.config.product_versions)
33
- @check_aws_resources = check_aws_resources
31
+ def initialize(product_versions: self.class.config.product_versions)
34
32
  @product_versions = Array(product_versions)
35
33
  raise 'product version must be of type Dev::EndOfLife::ProductVersions' unless @product_versions.all?(Dev::EndOfLife::ProductVersion)
36
34
  end
@@ -48,20 +46,23 @@ module Dev
48
46
  @products
49
47
  end
50
48
 
49
+ # Prints all of the product version statuses
50
+ def status
51
+ product_versions.sort_by(&:name).each(&:print_status)
52
+ end
53
+
54
+ # Returns true if any of the products are EOL
55
+ def eol?
56
+ product_versions.any?(&:eol)
57
+ end
58
+
51
59
  # Prints all of the product version statuses
52
60
  # Raises an error if any products are EOL
53
61
  def check
54
62
  puts
55
- checks_to_perform = product_versions.clone
56
- if check_aws_resources
57
- account_id = Dev::Aws::Profile.new.current
58
- account_name = Dev::Aws::Account.new.name_by_account(account_id)
59
- LOG.info " Current AWS Account is #{account_name} (#{account_id})\n".light_yellow
60
- checks_to_perform.concat(Dev::EndOfLife::Aws.new.default_products)
61
- end
62
- checks_to_perform.sort_by(&:name).each(&:print_status)
63
+ status
63
64
  puts
64
- raise 'found EOL versions' if product_versions.any?(&:eol)
65
+ raise 'found EOL versions' if eol?
65
66
  end
66
67
  end
67
68
  end
@@ -113,10 +113,10 @@ module Dev
113
113
  next unless File.exist?(project_dir)
114
114
 
115
115
  repo_basename = File.basename(File.realpath(project_dir))
116
- header = " #{repo_basename} (#{original_branches[project_dir]}) "
117
- puts center_pad(header).light_green
116
+ header = "#{repo_basename} (#{original_branches[project_dir]})"
117
+ puts Dev::Common.new.center_pad(header).light_green
118
118
  @success &= status(dir: project_dir)
119
- puts center_pad.light_green
119
+ puts Dev::Common.new.center_pad.light_green
120
120
  end
121
121
  puts
122
122
 
@@ -165,10 +165,10 @@ module Dev
165
165
  next unless File.exist?(project_dir)
166
166
 
167
167
  repo_basename = File.basename(File.realpath(project_dir))
168
- header = " #{repo_basename} (#{original_branches[project_dir]}) "
169
- puts center_pad(header).light_green
168
+ header = "#{repo_basename} (#{original_branches[project_dir]})"
169
+ puts Dev::Common.new.center_pad(header).light_green
170
170
  reset(dir: project_dir)
171
- puts center_pad.light_green
171
+ puts Dev::Common.new.center_pad.light_green
172
172
  end
173
173
  puts
174
174
  end
@@ -191,10 +191,9 @@ module Dev
191
191
  next unless File.exist?(project_dir)
192
192
 
193
193
  repo_basename = File.basename(File.realpath(project_dir))
194
- header = " #{repo_basename} "
195
- puts center_pad(header).light_green
194
+ puts Dev::Common.new.center_pad(repo_basename).light_green
196
195
  @success &= checkout(branch, dir: project_dir)
197
- puts center_pad.light_green
196
+ puts Dev::Common.new.center_pad.light_green
198
197
  end
199
198
  puts
200
199
 
@@ -285,10 +284,9 @@ module Dev
285
284
  next unless File.exist?(project_dir)
286
285
 
287
286
  repo_basename = File.basename(File.realpath(project_dir))
288
- header = " #{repo_basename} "
289
- puts center_pad(header).light_green
287
+ puts Dev::Common.new.center_pad(repo_basename).light_green
290
288
  @success &= merge(branch, dir: project_dir)
291
- puts center_pad.light_green
289
+ puts Dev::Common.new.center_pad.light_green
292
290
  end
293
291
  puts
294
292
 
@@ -334,10 +332,9 @@ module Dev
334
332
  next unless File.exist?(project_dir)
335
333
 
336
334
  repo_basename = File.basename(File.realpath(project_dir))
337
- header = " #{repo_basename} "
338
- puts center_pad(header).light_green
335
+ puts Dev::Common.new.center_pad(repo_basename).light_green
339
336
  @success &= pull(dir: project_dir)
340
- puts center_pad.light_green
337
+ puts Dev::Common.new.center_pad.light_green
341
338
  end
342
339
  puts
343
340
 
@@ -373,10 +370,9 @@ module Dev
373
370
  next unless File.exist?(project_dir)
374
371
 
375
372
  repo_basename = File.basename(File.realpath(project_dir))
376
- header = " #{repo_basename} "
377
- puts center_pad(header).light_green
373
+ puts Dev::Common.new.center_pad(repo_basename).light_green
378
374
  @success &= push(dir: project_dir)
379
- puts center_pad.light_green
375
+ puts Dev::Common.new.center_pad.light_green
380
376
  end
381
377
  puts
382
378
 
@@ -439,11 +435,10 @@ module Dev
439
435
  end
440
436
 
441
437
  # Center the string and pad on either side with the given padding character
438
+ # @deprecated Please use {Dev::Common#center_pad} instead
442
439
  def center_pad(string = '', pad: '-', len: 80)
443
- center_dash = len / 2
444
- string = string.to_s
445
- center_str = string.length / 2
446
- string.rjust(center_dash + center_str - 1, pad).ljust(len - 1, pad)
440
+ warn '[DEPRECATION] `Dev::Git#center_pad` is deprecated. Please use `Dev::Common#center_pad` instead.'
441
+ Dev::Common.new.center_pad(string, pad:, len:)
447
442
  end
448
443
 
449
444
  # Exclude the command from the message and print all error lines
@@ -90,14 +90,16 @@ module Dev
90
90
 
91
91
  # Build the bundle lint command
92
92
  def lint_command
93
- lint = ['rubocop']
93
+ lint = base_command
94
+ lint << 'exec' << 'rubocop'
94
95
  lint.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
95
96
  lint
96
97
  end
97
98
 
98
99
  # Build the bundle lint fix command
99
100
  def lint_fix_command
100
- lint_fix = ['rubocop']
101
+ lint_fix = base_command
102
+ lint_fix << 'exec' << 'rubocop'
101
103
  lint_fix << '-A'
102
104
  lint_fix.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
103
105
  lint_fix
@@ -105,7 +107,8 @@ module Dev
105
107
 
106
108
  # Build the bundle test command
107
109
  def test_command
108
- test = ['rspec']
110
+ test = base_command
111
+ test << 'exec' << 'rspec'
109
112
  test.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
110
113
  test
111
114
  end
@@ -94,11 +94,31 @@ module Dev
94
94
  end
95
95
  # rubocop:enable Metrics/MethodLength
96
96
 
97
- # Set the EOL library to also check AWS resources
97
+ # Create the rake task for the eol method
98
98
  def create_eol_task!
99
- return if exclude.include?(:eol)
99
+ # Have to set a local variable to be accessible inside of the instance_eval block
100
+ exclude = @exclude
100
101
 
101
- Dev::EndOfLife.config { |c| c.check_aws_resources = true }
102
+ DEV_COMMANDS_TOP_LEVEL.instance_eval do
103
+ return if exclude.include?(:eol)
104
+ return if ENV.fetch('CHECK_AWS', nil).to_s.strip == 'false'
105
+
106
+ task eol: [:'eol:aws'] do
107
+ # This is just a placeholder to execute the dependencies
108
+ end
109
+
110
+ namespace :eol do
111
+ desc 'Compares the current date to the EOL date for supported aws resources'
112
+ task aws: %w(init ensure_aws_credentials) do
113
+ account_id = Dev::Aws::Profile.new.current
114
+ account_name = Dev::Aws::Account.new.name_by_account(account_id)
115
+ LOG.info " Current AWS Account is #{account_name} (#{account_id})".light_yellow
116
+ puts
117
+ Dev::EndOfLife.new(product_versions: Dev::EndOfLife::Aws.new.default_products).status
118
+ puts
119
+ end
120
+ end
121
+ end
102
122
  end
103
123
  end
104
124
  end
@@ -29,6 +29,7 @@ module Dev
29
29
  end
30
30
 
31
31
  # Create the rake task which runs linting for the application name
32
+ # rubocop:disable Metrics/MethodLength
32
33
  def create_lint_task!
33
34
  application = @name
34
35
  node = @node
@@ -42,6 +43,13 @@ module Dev
42
43
  # This is just a placeholder to execute the dependencies
43
44
  end
44
45
 
46
+ namespace :lint do
47
+ desc 'Run all linting software and apply all available fixes'
48
+ task fix: %w(node:lint:fix) do
49
+ # This is just a placeholder to execute the dependencies
50
+ end
51
+ end
52
+
45
53
  namespace :node do
46
54
  desc "Run the node linting software against the #{application}'s codebase"
47
55
  task lint: %w(init_docker up_no_deps) do
@@ -66,6 +74,7 @@ module Dev
66
74
  end
67
75
  end
68
76
  end
77
+ # rubocop:enable Metrics/MethodLength
69
78
 
70
79
  # Create the rake task which runs all tests for the application name
71
80
  def create_test_task!
@@ -74,6 +74,7 @@ module Dev
74
74
  end
75
75
 
76
76
  # Create the rake task which runs linting for the application name
77
+ # rubocop:disable Metrics/MethodLength
77
78
  def create_lint_task!
78
79
  application = @name
79
80
  php = @php
@@ -87,6 +88,13 @@ module Dev
87
88
  # This is just a placeholder to execute the dependencies
88
89
  end
89
90
 
91
+ namespace :lint do
92
+ desc 'Run all linting software and apply all available fixes'
93
+ task fix: %w(php:lint:fix) do
94
+ # This is just a placeholder to execute the dependencies
95
+ end
96
+ end
97
+
90
98
  namespace :php do
91
99
  desc "Run the php linting software against the #{application}'s codebase"
92
100
  task lint: %w(init_docker up_no_deps) do
@@ -111,6 +119,7 @@ module Dev
111
119
  end
112
120
  end
113
121
  end
122
+ # rubocop:enable Metrics/MethodLength
114
123
 
115
124
  # Create the rake task which runs all tests for the application name
116
125
  def create_test_task!
@@ -28,6 +28,7 @@ module Dev
28
28
  end
29
29
 
30
30
  # Create the rake task which runs linting for the application name
31
+ # rubocop:disable Metrics/MethodLength
31
32
  def create_lint_task!
32
33
  application = @name
33
34
  ruby = @ruby
@@ -41,6 +42,13 @@ module Dev
41
42
  # This is just a placeholder to execute the dependencies
42
43
  end
43
44
 
45
+ namespace :lint do
46
+ desc 'Run all linting software and apply all available fixes'
47
+ task fix: %w(ruby:lint:fix) do
48
+ # This is just a placeholder to execute the dependencies
49
+ end
50
+ end
51
+
44
52
  namespace :ruby do
45
53
  desc "Run the ruby linting software against the #{application}'s codebase"
46
54
  task lint: %w(init_docker up_no_deps) do
@@ -65,6 +73,7 @@ module Dev
65
73
  end
66
74
  end
67
75
  end
76
+ # rubocop:enable Metrics/MethodLength
68
77
 
69
78
  # Create the rake task which runs all tests for the application name
70
79
  def create_test_task!
@@ -12,9 +12,10 @@ module Dev
12
12
  DEV_COMMANDS_TOP_LEVEL.instance_eval do
13
13
  return if exclude.include?(:eol)
14
14
 
15
- desc 'Compares the current date to the EOL date for all configured projects'
15
+ desc 'Compares the current date to the EOL date for all configured projects' \
16
+ "\n\toptionally specify CHECK_AWS=<true/false> to toggle whether AWS resources are checked for EOL (defaults to true)"
16
17
  task eol: %w(init) do
17
- Dev::EndOfLife.new.check
18
+ Dev::EndOfLife.new.status
18
19
  end
19
20
  end
20
21
  end
@@ -6,6 +6,6 @@ module Dev
6
6
  # Use 'v.v.v.pre.alpha.v' for pre-release vesions
7
7
  # Use 'v.v.v.beta.v for beta versions
8
8
  # Use semantic versioning for any releases (https://semver.org/)
9
- VERSION = '2.1.26.pre.alpha.2'.freeze
9
+ VERSION = '2.1.26.pre.alpha.4'.freeze
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firespring_dev_commands
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.26.pre.alpha.2
4
+ version: 2.1.26.pre.alpha.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Firespring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-16 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport