firespring_dev_commands 2.1.25 → 2.1.26.pre.alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/firespring_dev_commands/common.rb +8 -0
- data/lib/firespring_dev_commands/eol.rb +13 -4
- data/lib/firespring_dev_commands/git.rb +12 -20
- data/lib/firespring_dev_commands/ruby.rb +6 -3
- data/lib/firespring_dev_commands/templates/aws.rb +11 -12
- 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 +2 -1
- data/lib/firespring_dev_commands/templates/git.rb +17 -0
- data/lib/firespring_dev_commands/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e85fa03c8d3741894c226c3ea8b84616eebb28287ba855d4da44a242370200de
|
4
|
+
data.tar.gz: 8468adbf7fa2821686d14cce1efd1c083e1a732471ae90330c49f9e566af7c43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3abd512246b31b86a045d84b19cddc4f0a193e0c76701dc26b19fa44b10b19a97aa054f2b29ee47d4d692c71e67e25c621a432825d8d1d14581ad14c237a7d83
|
7
|
+
data.tar.gz: 3cb0d1738d5ff0ad5a5e45e2af5371ca45c8ceeb2e55d9fdcbba7f29b4e91fa5cbfaa4989f20a966a2674f4d5fa920c2d1b0f2f387707bc3c2499ebbd61c8e2a
|
@@ -187,5 +187,13 @@ 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
|
+
center_dash = len / 2
|
194
|
+
string = string.to_s
|
195
|
+
center_str = string.length / 2
|
196
|
+
string.rjust(center_dash + center_str - 1, pad).ljust(len - 1, pad)
|
197
|
+
end
|
190
198
|
end
|
191
199
|
end
|
@@ -5,8 +5,9 @@ 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(:product_versions, :manual_dates) do
|
8
|
+
Config = Struct.new(:check_aws_resources, :product_versions, :manual_dates) do
|
9
9
|
def initialize
|
10
|
+
self.check_aws_resources = false
|
10
11
|
self.product_versions = []
|
11
12
|
self.manual_dates = {}
|
12
13
|
end
|
@@ -26,9 +27,10 @@ module Dev
|
|
26
27
|
alias_method :configure, :config
|
27
28
|
end
|
28
29
|
|
29
|
-
attr_accessor :url, :products, :product_versions
|
30
|
+
attr_accessor :url, :products, :check_aws_resources, :product_versions
|
30
31
|
|
31
|
-
def initialize(product_versions: self.class.config.product_versions)
|
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
|
32
34
|
@product_versions = Array(product_versions)
|
33
35
|
raise 'product version must be of type Dev::EndOfLife::ProductVersions' unless @product_versions.all?(Dev::EndOfLife::ProductVersion)
|
34
36
|
end
|
@@ -50,7 +52,14 @@ module Dev
|
|
50
52
|
# Raises an error if any products are EOL
|
51
53
|
def check
|
52
54
|
puts
|
53
|
-
product_versions.
|
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)
|
54
63
|
puts
|
55
64
|
raise 'found EOL versions' if product_versions.any?(&:eol)
|
56
65
|
end
|
@@ -114,9 +114,9 @@ module Dev
|
|
114
114
|
|
115
115
|
repo_basename = File.basename(File.realpath(project_dir))
|
116
116
|
header = " #{repo_basename} (#{original_branches[project_dir]}) "
|
117
|
-
puts center_pad(header).light_green
|
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
|
|
@@ -166,9 +166,9 @@ module Dev
|
|
166
166
|
|
167
167
|
repo_basename = File.basename(File.realpath(project_dir))
|
168
168
|
header = " #{repo_basename} (#{original_branches[project_dir]}) "
|
169
|
-
puts center_pad(header).light_green
|
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
|
@@ -192,9 +192,9 @@ module Dev
|
|
192
192
|
|
193
193
|
repo_basename = File.basename(File.realpath(project_dir))
|
194
194
|
header = " #{repo_basename} "
|
195
|
-
puts center_pad(header).light_green
|
195
|
+
puts Dev::Common.new.center_pad(header).light_green
|
196
196
|
@success &= checkout(branch, dir: project_dir)
|
197
|
-
puts center_pad.light_green
|
197
|
+
puts Dev::Common.new.center_pad.light_green
|
198
198
|
end
|
199
199
|
puts
|
200
200
|
|
@@ -286,9 +286,9 @@ module Dev
|
|
286
286
|
|
287
287
|
repo_basename = File.basename(File.realpath(project_dir))
|
288
288
|
header = " #{repo_basename} "
|
289
|
-
puts center_pad(header).light_green
|
289
|
+
puts Dev::Common.new.center_pad(header).light_green
|
290
290
|
@success &= merge(branch, dir: project_dir)
|
291
|
-
puts center_pad.light_green
|
291
|
+
puts Dev::Common.new.center_pad.light_green
|
292
292
|
end
|
293
293
|
puts
|
294
294
|
|
@@ -335,9 +335,9 @@ module Dev
|
|
335
335
|
|
336
336
|
repo_basename = File.basename(File.realpath(project_dir))
|
337
337
|
header = " #{repo_basename} "
|
338
|
-
puts center_pad(header).light_green
|
338
|
+
puts Dev::Common.new.center_pad(header).light_green
|
339
339
|
@success &= pull(dir: project_dir)
|
340
|
-
puts center_pad.light_green
|
340
|
+
puts Dev::Common.new.center_pad.light_green
|
341
341
|
end
|
342
342
|
puts
|
343
343
|
|
@@ -374,9 +374,9 @@ module Dev
|
|
374
374
|
|
375
375
|
repo_basename = File.basename(File.realpath(project_dir))
|
376
376
|
header = " #{repo_basename} "
|
377
|
-
puts center_pad(header).light_green
|
377
|
+
puts Dev::Common.new.center_pad(header).light_green
|
378
378
|
@success &= push(dir: project_dir)
|
379
|
-
puts center_pad.light_green
|
379
|
+
puts Dev::Common.new.center_pad.light_green
|
380
380
|
end
|
381
381
|
puts
|
382
382
|
|
@@ -438,14 +438,6 @@ module Dev
|
|
438
438
|
string.to_s.split("\n").each { |line| puts "#{padding}#{line}" }
|
439
439
|
end
|
440
440
|
|
441
|
-
# Center the string and pad on either side with the given padding character
|
442
|
-
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)
|
447
|
-
end
|
448
|
-
|
449
441
|
# Exclude the command from the message and print all error lines
|
450
442
|
private def print_errors(message)
|
451
443
|
indent message.split('error:')[1..].join
|
@@ -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,21 +94,20 @@ module Dev
|
|
94
94
|
end
|
95
95
|
# rubocop:enable Metrics/MethodLength
|
96
96
|
|
97
|
-
#
|
97
|
+
# Set the EOL library to also check AWS resources
|
98
98
|
def create_eol_task!
|
99
|
-
|
100
|
-
exclude = @exclude
|
99
|
+
return if exclude.include?(:eol)
|
101
100
|
|
102
|
-
|
103
|
-
|
101
|
+
Dev::EndOfLife.config do |c|
|
102
|
+
env_check = ENV.fetch('CHECK_AWS', nil).to_s.strip
|
103
|
+
if env_check == 'false'
|
104
|
+
c.check_aws_resources = false
|
105
|
+
else
|
106
|
+
c.check_aws_resources = true
|
104
107
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
account_name = Dev::Aws::Account.new.name_by_account(account_id)
|
109
|
-
LOG.info " Current AWS Account is #{account_name} (#{account_id})".light_yellow
|
110
|
-
|
111
|
-
Dev::EndOfLife.new(product_versions: Dev::EndOfLife::Aws.new.default_products).check
|
108
|
+
task eol: %w(ensure_aws_credentials) do
|
109
|
+
# Require the user is logged in to aws since those resources will be checked
|
110
|
+
end
|
112
111
|
end
|
113
112
|
end
|
114
113
|
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,7 +12,8 @@ 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
18
|
Dev::EndOfLife.new.check
|
18
19
|
end
|
@@ -4,6 +4,23 @@ module Dev
|
|
4
4
|
module Template
|
5
5
|
# Class contains rake templates for managing your git project
|
6
6
|
class Git < Dev::Template::BaseInterface
|
7
|
+
# Create the rake task for cloning all defined repos
|
8
|
+
def create_clone_task!
|
9
|
+
# Have to set a local variable to be accessible inside of the instance_eval block
|
10
|
+
exclude = @exclude
|
11
|
+
|
12
|
+
DEV_COMMANDS_TOP_LEVEL.instance_eval do
|
13
|
+
namespace :git do
|
14
|
+
return if exclude.include?(:clone)
|
15
|
+
|
16
|
+
desc 'Make sure all repos are cloned'
|
17
|
+
task :clone do
|
18
|
+
Dev::Git.new.clone_repos
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
7
24
|
# Create the rake task for the git checkout method
|
8
25
|
def create_checkout_task!
|
9
26
|
# Have to set a local variable to be accessible inside of the instance_eval block
|
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.
|
4
|
+
version: 2.1.26.pre.alpha.3
|
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-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -409,9 +409,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
409
409
|
version: '3.1'
|
410
410
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
411
|
requirements:
|
412
|
-
- - "
|
412
|
+
- - ">"
|
413
413
|
- !ruby/object:Gem::Version
|
414
|
-
version:
|
414
|
+
version: 1.3.1
|
415
415
|
requirements: []
|
416
416
|
rubygems_version: 3.4.10
|
417
417
|
signing_key:
|