Class: RailsCredentialsManager::Conflicts

Inherits:
Base
  • Object
show all
Defined in:
lib/rails_credentials_manager/conflicts.rb

Constant Summary collapse

REGEXP =
/^<{7} HEAD(\r?\n(?!={7}\r?\n).*)*\r?\n={7}(\r?\n(?!>{7} ).*)*\r?\n>{7} \S+/m

Constants inherited from Base

Base::AVAILABLE_ENVIRONMENTS

Instance Method Summary collapse

Methods inherited from Base

#config_has_keys?, #configs, #initialize, #pastel, #print_key_and_value

Constructor Details

This class inherits a constructor from RailsCredentialsManager::Base

Instance Method Details

#performObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rails_credentials_manager/conflicts.rb', line 7

def perform
  @environment_list.each do |env|
    puts pastel.green("#{env}:")
    cred_content = File.read("config/credentials/#{env}.yml.enc")
    parsed_conflict = REGEXP.match(cred_content)

    unless parsed_conflict
      puts "✅ No conflicts found"
      next
    end

    our_config = config_to_compare_for(env, parsed_conflict[1].strip)
    their_config = config_to_compare_for(env, parsed_conflict[2].strip)
    @merged_config = our_config.deep_merge(their_config)
    deep_print_diff(HashDiff.diff(their_config, our_config))

    # removes "---\n" in the very beginning
    merged_config_as_string = @merged_config.deep_stringify_keys.to_yaml[4..]
    rewrite_config_for(env, merged_config_as_string)
    puts "✅ Merged config for #{env} has been saved"
  end
end