firespring_dev_commands 2.2.8.pre.alpha.0 → 2.3.0.pre.alpha.1

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: b5dee68fee762c895021357261186dbf043c9719c2304c3d79893d943f83b10b
4
- data.tar.gz: 9df30efd116a01d8688d1cfa5f61a12c3a8b871d797bd028da51f38c05c6e044
3
+ metadata.gz: 778ff67e973ecdf910d950b09b6eaae4115696dd611d40681edf117056df6785
4
+ data.tar.gz: cee645397957dcdba5122f3d569cc5800a70b4c6e4695010acd931dba83092d7
5
5
  SHA512:
6
- metadata.gz: 8140c7df5ccc1b41e74959476d71708687175c5797dcfe4117934e7dbcce55edbaa98c957685209309c5c2582a1a858fe1b0d90e6898d08287b680b12c46b706
7
- data.tar.gz: 3003314d63a53c06e6509c45b9e35eb2135a5b7b8a7ea8bc14039c86b062cb9f31a8ee27f22db216c5a117a6c2a39046a381695e821d469bd7b2d9a4090407fc
6
+ metadata.gz: 77939ad333d8c4ac77623c165ca0541d225361276ac3411dc769cd4dbd469b3543a0b255ce92ba1d8d89a019942f0b0aa6266ffa13321454ae42d6a786592a9d
7
+ data.tar.gz: 0a86f1791da0270e490ce8fd0cbe6d81ca4fce991db527e900f6ccfbe9aae157bb16177a3ca285ee389c563cf6c2cf7396862e2d14f1e941cf679d77aeaaaf0f
@@ -67,56 +67,18 @@ module Dev
67
67
  [response.hosted_zone, response.delegation_set]
68
68
  end
69
69
 
70
- def json_details
71
- zone_count = 0
70
+ def list_zone_details
72
71
  zones do |zone|
72
+ puts
73
73
  zone_details, delegation_set = details(zone.id)
74
74
  dns_resource = Dev::Dns::Resource.new(zone_details.name)
75
- zone_count += 1
76
- apex_record = dns_resource.recursive_a_lookup
77
- nameserver_names = dns_resource.recursive_nameserver_lookup
78
- nameserver_ips = nameserver_names.sort.map { |it| dns_resource.recursive_a_lookup(it) }
79
- # Check if the site is dead, no a record or any AWS ips in the lists.
80
- # if apex_record.empty? && (!zone_details.name.chomp('.').include? 'firespring') && (!nameserver_ips.join(', ').include? '205.251')
81
- if !dns_resource.recursive_a_lookup.empty? && (dns_resource.recursive_nameserver_lookup.include? 'ns1.firespring.com')
82
- out_data = {
83
- 'count' => zone_count,
84
- 'dns_name' => zone_details.name.chomp('.'),
85
- 'hosted_zone_id' => zone_details.id,
86
- 'delegation_set_id' => delegation_set.id,
87
- # 'registrar_servers' => dns_resource.registrar_lookup.join(','), # This function is fickle, add with care.
88
- 'reported_nameservers' => nameserver_names.sort.join(', '),
89
- 'reported_ns_ips' => nameserver_ips.join(', '),
90
- 'a_record_ip' => apex_record.sort.join(', ')
91
- }
92
- # Display contents
93
- puts JSON.pretty_generate(out_data)
94
- end
95
- rescue ::Aws::Route53::Errors::Throttling
96
- sleep(1)
97
- retry
98
- end
99
- puts
100
- end
101
75
 
102
- def command_line_details
103
- zone_count = 0
104
- zones do |zone|
105
- zone_details, delegation_set = details(zone.id)
106
- dns_resource = Dev::Dns::Resource.new(zone_details.name)
107
- zone_count += 1
108
- if !dns_resource.recursive_a_lookup.empty? && (dns_resource.recursive_nameserver_lookup.include? 'ns1.firespring.com')
109
- puts
110
- puts "#{zone_count} - #{zone_details.name.chomp('.')} (#{zone_details.id}):"
111
- puts format(' %-50s %s', 'Delegation Set:', delegation_set.id)
112
- puts format(' %-50s %s', 'Delegation Defined Nameservers:', delegation_set.name_servers.sort.join(', '))
113
- puts format(' %-50s %s', 'WHOIS Reported server:', dns_resource.registrar_lookup.join(','))
114
- puts format(' %-50s %s', 'DNS Reported Nameservers:', dns_resource.recursive_nameserver_lookup.sort.join(', '))
115
- puts format(' %-50s %s', 'DNS Reported Nameserver IPs:', dns_resource.recursive_nameserver_lookup.sort.map do |it|
116
- dns_resource.recursive_a_lookup(it)
117
- end.join(', '))
118
- puts format(' %-50s %s', 'Domain Apex IP Resolution:', dns_resource.recursive_a_lookup.sort.join(', '))
119
- end
76
+ puts "#{zone_details.name.chomp('.').light_white} (#{zone_details.id}):"
77
+ puts format(' %-50s %s', 'Delegation Set:', delegation_set.id)
78
+ puts format(' %-50s %s', 'Delegation Defined Nameservers:', delegation_set.name_servers.sort.join(', '))
79
+ puts format(' %-50s %s', 'DNS Reported Nameservers:', dns_resource.recursive_nameserver_lookup.sort.join(', '))
80
+ puts format(' %-50s %s', 'DNS Reported Nameserver IPs:', dns_resource.recursive_nameserver_lookup.sort.map { |it| dns_resource.recursive_a_lookup(it) }.join(', '))
81
+ puts format(' %-50s %s', 'Domain Apex IP Resolution:', dns_resource.recursive_a_lookup.sort.join(', '))
120
82
  rescue ::Aws::Route53::Errors::Throttling
121
83
  sleep(1)
122
84
  retry
@@ -1,5 +1,3 @@
1
- require 'whois'
2
-
3
1
  module Dev
4
2
  class Dns
5
3
  class Resource
@@ -24,14 +22,6 @@ module Dev
24
22
  value.match?(Resolv::IPv6::Regex)
25
23
  end
26
24
 
27
- # Determines the registrar(s) of the given name. Not perfect and can be rate limited.
28
- def registrar_lookup(name = domain)
29
- Whois.whois(name.chomp('.')).parts.map(&:host)
30
- rescue Whois::Error
31
- sleep(0.75)
32
- retry
33
- end
34
-
35
25
  # Recursively determine the correct nameservers for the given domain.
36
26
  # If nameservers are not found, strip subdomains off until we've reached the TLD
37
27
  def recursive_nameserver_lookup(name = domain)
@@ -185,7 +185,7 @@ module Dev
185
185
  end
186
186
 
187
187
  # Checks out the given branch in all repositories with some additional formatting
188
- def checkout_all(branch)
188
+ def checkout_all(branch, default_branch: nil)
189
189
  @success = true
190
190
  puts
191
191
  puts "Checking out #{branch} in each repo".light_yellow if project_dirs.length > 1
@@ -194,7 +194,7 @@ module Dev
194
194
 
195
195
  repo_basename = File.basename(File.realpath(project_dir))
196
196
  puts Dev::Common.new.center_pad(repo_basename).light_green
197
- @success &= checkout(branch, dir: project_dir)
197
+ @success &= checkout(branch, default: default_branch, dir: project_dir)
198
198
  puts Dev::Common.new.center_pad.light_green
199
199
  end
200
200
  puts
@@ -205,7 +205,7 @@ module Dev
205
205
  # Checks out the given branch in the given repo
206
206
  # Defaults to the current directory
207
207
  # optionally raise errors
208
- def checkout(branch, dir: default_project_dir, raise_errors: false)
208
+ def checkout(branch, default: nil, dir: default_project_dir, raise_errors: false)
209
209
  raise 'branch is required' if branch.to_s.strip.empty?
210
210
  return unless File.exist?(dir)
211
211
 
@@ -218,7 +218,7 @@ module Dev
218
218
  # If the branch we are checking out doesn't exist, check out either the staging branch or the main branch
219
219
  actual_branch = branch
220
220
  unless branch_exists?(dir, branch)
221
- actual_branch = [staging_branch, main_branch].uniq.find { |it| branch_exists?(dir, it) }
221
+ actual_branch = [default, staging_branch, main_branch].uniq.find { |it| branch_exists?(dir, it) }
222
222
  puts "Branch #{branch} not found, checking out #{actual_branch} instead".light_yellow
223
223
  end
224
224
 
@@ -6,7 +6,7 @@ module Dev
6
6
  module Services
7
7
  # Class contains rake templates for managing your AWS settings and logging in
8
8
  class Route53 < Dev::Template::BaseInterface
9
- def create_pretty_list_zone_details_task!
9
+ def create_list_zone_details_task!
10
10
  # Have to set a local variable to be accessible inside of the instance_eval block
11
11
  exclude = @exclude
12
12
 
@@ -18,26 +18,7 @@ module Dev
18
18
  desc 'print details for all hosted zones'
19
19
  task list_details: %w(ensure_aws_credentials) do
20
20
  route53 = Dev::Aws::Route53.new(ENV['DOMAINS'].to_s.strip.split(','))
21
- route53.command_line_details
22
- end
23
- end
24
- end
25
- end
26
- end
27
-
28
- def create_json_list_zone_details_task!
29
- # Have to set a local variable to be accessible inside of the instance_eval block
30
- exclude = @exclude
31
-
32
- DEV_COMMANDS_TOP_LEVEL.instance_eval do
33
- return if exclude.include?(:json_details)
34
-
35
- namespace :aws do
36
- namespace :hosted_zone do
37
- desc 'print details for all hosted zones'
38
- task json_details: %w(ensure_aws_credentials) do
39
- route53 = Dev::Aws::Route53.new(ENV['DOMAINS'].to_s.strip.split(','))
40
- route53.json_details
21
+ route53.list_zone_details
41
22
  end
42
23
  end
43
24
  end
@@ -31,13 +31,15 @@ module Dev
31
31
  return if exclude.include?(:checkout)
32
32
 
33
33
  desc 'Checks out a branch for each repo (alias: git:co)' \
34
- "\n\tuse BRANCH=abc123 to specify the branch of code you with to switch to (required)" \
35
- "\n\tIf the branch does not exist, the configured staging or main branch will be checked out"
34
+ "\n\tuse BRANCH=abc123 to specify the branch of code you wish to switch to (required)" \
35
+ "\n\tuse DEFAULT=abc456 to specify the branch of code to fall back to" \
36
+ "\n\tIf branch and default do not exist, the configured staging or main branch will be checked out"
36
37
  task checkout: %w(init) do
37
38
  branch = ENV['BRANCH'].to_s.strip
39
+ default = ENV['DEFAULT'].to_s.strip
38
40
  raise 'branch is required' if branch.empty?
39
41
 
40
- Dev::Git.new.checkout_all(branch)
42
+ Dev::Git.new.checkout_all(branch, default_branch: default)
41
43
  end
42
44
 
43
45
  task co: %w(init checkout) do
@@ -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.2.8.pre.alpha.0'.freeze
9
+ VERSION = '2.3.0.pre.alpha.1'.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.2.8.pre.alpha.0
4
+ version: 2.3.0.pre.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Firespring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-28 00:00:00.000000000 Z
11
+ date: 2024-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -360,20 +360,6 @@ dependencies:
360
360
  - - "~>"
361
361
  - !ruby/object:Gem::Version
362
362
  version: 2.2.0
363
- - !ruby/object:Gem::Dependency
364
- name: whois
365
- requirement: !ruby/object:Gem::Requirement
366
- requirements:
367
- - - "~>"
368
- - !ruby/object:Gem::Version
369
- version: '6.0'
370
- type: :runtime
371
- prerelease: false
372
- version_requirements: !ruby/object:Gem::Requirement
373
- requirements:
374
- - - "~>"
375
- - !ruby/object:Gem::Version
376
- version: '6.0'
377
363
  description: Ruby library for creating/maintaining your development environment
378
364
  email: opensource@firespring.com
379
365
  executables: []