# frozen_string_literal: true require 'yaml' Facter.add(:incus) do setcode do # Check if the 'incus' executable exists incus_path = Facter::Util::Resolution.which('incus') next {} unless incus_path # Return an empty fact if incus isn't found # Run the `incus info` command using the found path incus_output = Facter::Core::Execution.execute("#{incus_path} info") next {} if incus_output.empty? # Return an empty fact if there's no output # Parse the output as YAML and return it YAML.safe_load(incus_output) end end