configure

in chef/cookbooks/cpe_environment/resources/cpe_environment_zsh.rb [38:91]


  def configure
    
    cpe_zsh_config = node['cpe_environment']['config'].to_h.reject do |_k, v|
      v.nil? || v.empty?
    end
    zsh_config_set = true

    
    zsh_config = CPE::Environment.read_config(zsh_config_file)

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

    
    
    if zsh_config_set && !CPE::Environment.zsh_chef_managed?(zsh_config_file, cpe_config_file)
      zsh_config += CPE::Environment.zsh_config_lines(cpe_config_file)
    
    
    elsif !zsh_config_set
      remove_zsh_source(zsh_config)
      
      file cpe_config_file do
        action :delete
      end
    end

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

    directory cpe_zsh_dir do
      owner root_owner
      group node['root_group']
    end

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