firespring_dev_commands 2.1.26.pre.alpha.2 → 2.1.26.pre.alpha.4
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/firespring_dev_commands/common.rb +9 -0
- data/lib/firespring_dev_commands/eol.rb +15 -14
- data/lib/firespring_dev_commands/git.rb +17 -22
- data/lib/firespring_dev_commands/ruby.rb +6 -3
- data/lib/firespring_dev_commands/templates/aws.rb +23 -3
- data/lib/firespring_dev_commands/templates/docker/node/application.rb +9 -0
- data/lib/firespring_dev_commands/templates/docker/php/application.rb +9 -0
- data/lib/firespring_dev_commands/templates/docker/ruby/application.rb +9 -0
- data/lib/firespring_dev_commands/templates/eol.rb +3 -2
- data/lib/firespring_dev_commands/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63e2a31f96bc3e440c404c63414e94fc30f7a00bfc120f8375b60297ee2e1ffa
|
4
|
+
data.tar.gz: 5f9f3e37d9c51930359adefb194906c325152dc239b52bb8b281b35f4fa287f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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(:
|
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, :
|
29
|
+
attr_accessor :url, :products, :product_versions
|
31
30
|
|
32
|
-
def initialize(
|
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
|
-
|
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
|
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 = "
|
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 = "
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
444
|
-
string
|
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 =
|
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 =
|
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 =
|
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
|
-
#
|
97
|
+
# Create the rake task for the eol method
|
98
98
|
def create_eol_task!
|
99
|
-
|
99
|
+
# Have to set a local variable to be accessible inside of the instance_eval block
|
100
|
+
exclude = @exclude
|
100
101
|
|
101
|
-
|
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.
|
18
|
+
Dev::EndOfLife.new.status
|
18
19
|
end
|
19
20
|
end
|
20
21
|
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.
|
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-
|
11
|
+
date: 2024-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|