enforce

in chef/cookbooks/cpe_hostname/resources/cpe_hostname.rb [32:79]


  def enforce
    hostname = node['cpe_hostname']['hostname']
    suffix = node['cpe_hostname']['suffix']

    
    if hostname.nil?
      Chef::Log.warn('cpe_hostname hostname value not set!')
      return
    end

    if macos?
      
      if %w(loginwindow _mbsetupuser).include?(node.console_user)
        Chef::Log.warn(
          'Device at loginwindow or SetupAssistant - skipping hostname '\
          'enforcement!',
        )
        return
      end
      %w[
        ComputerName
        HostName
        LocalHostName
      ].each do |type|
        
        
        
        fixed_hostname = hostname.gsub(/[@._ ]/, '-')

        
        
        if type == 'HostName' && !(suffix.nil? || suffix.empty?)
          fixed_hostname = fixed_hostname.to_s + ".#{suffix}"
        end
        execute "Setting #{type} to #{fixed_hostname}" do
          command "/usr/sbin/scutil --set #{type} #{fixed_hostname}"
          only_if { check_hostname_macos(type) != fixed_hostname }
        end
      end
    elsif windows?
      
      return
    elsif debian?
      
      return
    end
  end