# This class manages the installation of packages for the base profile # # Parameters: # - $install: An array of package names to be installed # - $remove: An array of package names to be removed # class profiles::packages ( Array $install = [], Array $install_exclude = [], Array $remove = [], Array $remove_exclude = [], ) { # Filter out excluded packages $install_real = $install.filter |$item| { !$install_exclude.any |$exclude_item| { $exclude_item == $item } } $remove_real = $remove.filter |$item| { !$remove_exclude.any |$exclude_item| { $exclude_item == $item } } # Ensure packages to install are installed ensure_packages($install_real, {'ensure' => 'present'}) # Ensure packages to remove are absent ensure_packages($remove_real, {'ensure' => 'absent'}) }