configure

in chef/cookbooks/cpe_environment/resources/cpe_environment_bash.rb [38:106]


  def configure
    
    return if macos? && node.os_at_least?('10.15')

    
    cpe_bash_config = node['cpe_environment']['config'].to_h.reject do |_k, v|
      v.nil? || v.empty?
    end

    bash_config_set = true

    
    bash_config = CPE::Environment.read_config(bash_config_file)

    if cpe_bash_config.nil? || cpe_bash_config.empty?
      Chef::Log.warn('config is not populated, skipping configuration')
      bash_config_set = false
    end

    
    
    
    cookbook_file cpe_profiled_file do
      source 'profile_cpe'
      owner root_owner
      group node['root_group']
      mode '0644'
    end

    
    if bash_config_set && !CPE::Environment.profile_chef_managed?(bash_config_file, cpe_profiled_file)
      bash_config += CPE::Environment.bash_config_lines(cpe_profiled_file)
    
    
    elsif !bash_config_set
      remove_bash_source(bash_config)
      
      file cpe_config_file do
        action :delete
      end
    end

    
    file bash_config_file do
      owner root_owner
      group node['root_group']
      mode '0644'
      content bash_config.join
    end

    
    directory '/etc/profile.d' do
      owner root_owner
      group node['root_group']
    end

    
    template cpe_config_file do
      only_if { bash_config_set }
      source 'bash_cpe.erb'
      owner root_owner
      group node['root_group']
      mode '0644'
      variables(
        'config' => cpe_bash_config,
      )
    end
  end