SecBSD's official ports repository

This commit is contained in:
purplerain 2023-08-16 22:26:55 +00:00
commit 2c0afcbbf3
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
64331 changed files with 5339189 additions and 0 deletions

View file

@ -0,0 +1,22 @@
# frozen_string_literal: true
require_relative '../networking'
module Facter
module Resolvers
module Openbsd
class Dhcp < Facter::Resolvers::Networking
init_resolver
class << self
def extract_dhcp(interface_name, raw_data, parsed_interface_data)
return unless raw_data =~ /status:\s+active/
result = Facter::Core::Execution.execute("dhcpleasectl -l #{interface_name}", logger: log)
parsed_interface_data[:dhcp] = extract_values(result, /\sdhcp server (\S+)/).first unless result.empty?
end
end
end
end
end
end

View file

@ -0,0 +1,41 @@
# frozen_string_literal: true
module Facter
module Resolvers
module Openbsd
class DmiBios < BaseResolver
init_resolver
class << self
private
def post_resolve(fact_name, _options)
@fact_list.fetch(fact_name) { read_facts(fact_name) }
end
CTL_HW = 6
HW_VENDOR = 14
HW_PRODUCT = 15
HW_VERSION = 16
HW_SERIALNO = 17
HW_UUID = 18
def read_facts(fact_name)
require 'facter/resolvers/bsd/ffi/ffi_helper'
@fact_list[:bios_vendor] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VENDOR])
@fact_list[:bios_version] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VERSION])
@fact_list[:product_name] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_PRODUCT])
@fact_list[:product_serial] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_SERIALNO])
@fact_list[:product_uuid] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_UUID])
@fact_list[:sys_vendor] = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_VENDOR])
@fact_list[fact_name]
end
end
end
end
end
end

View file

@ -0,0 +1,72 @@
# frozen_string_literal: true
module Facter
module Resolvers
module Openbsd
class Mountpoints < BaseResolver
init_resolver
BLOCK_SIZE = 512
class << self
private
def post_resolve(fact_name, _options)
@fact_list.fetch(fact_name) { read_mount(fact_name) }
end
def read_mount(fact_name)
@fact_list[:mountpoints] = {}
output = Facter::Core::Execution.execute('mount', logger: log)
output.split("\n").map do |line|
add_mount_points_fact(line)
end
retrieve_sizes_for_mounts
@fact_list[fact_name]
end
def add_mount_points_fact(line)
elem = line.split("\s")
options = elem.drop(5)
options.each { |option| option.tr!('(),', '') }
@fact_list[:mountpoints][elem[2]] = { device: elem[0], filesystem: elem[4],
options: options }
end
def retrieve_sizes_for_mounts
output = Facter::Core::Execution.execute('df -P', logger: log)
output.split("\n").drop(1).map do |line|
next if line =~ /-\s+-\s+-/
mount_info = line.split("\s")
mount_info[3] = translate_to_bytes(mount_info[3])
mount_info[2] = translate_to_bytes(mount_info[2])
mount_info[1] = translate_to_bytes(mount_info[1])
compute_sizes(mount_info)
end
end
def translate_to_bytes(strin_size)
strin_size.to_i * BLOCK_SIZE
end
def compute_sizes(info)
available_bytes = info[3]
used_bytes = info[2]
size_bytes = info[1]
@fact_list[:mountpoints][info.last].merge!(
capacity: Facter::Util::Resolvers::FilesystemHelper.compute_capacity(used_bytes, size_bytes),
available_bytes: available_bytes,
used_bytes: used_bytes,
size_bytes: size_bytes,
available: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(available_bytes),
used: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(used_bytes),
size: Facter::Util::Facts::UnitConverter.bytes_to_human_readable(size_bytes)
)
end
end
end
end
end
end

View file

@ -0,0 +1,41 @@
# frozen_string_literal: true
module Facter
module Resolvers
module Openbsd
class Virtual < BaseResolver
init_resolver
class << self
#:model
VM_GUEST_SYSCTL_NAMES = {
'VMM' => 'vmm',
'vServer' => 'vserver',
'oracle' => 'virtualbox',
'xen' => 'xenu',
'none' => nil
}.freeze
private
def post_resolve(fact_name, _options)
@fact_list.fetch(fact_name) { read_facts(fact_name) }
end
CTL_HW = 6
HW_PRODUCT = 15
def read_facts(fact_name)
require 'facter/resolvers/bsd/ffi/ffi_helper'
vm = Facter::Bsd::FfiHelper.sysctl(:string, [CTL_HW, HW_PRODUCT])
vm = VM_GUEST_SYSCTL_NAMES[vm] if VM_GUEST_SYSCTL_NAMES.key?(vm)
@fact_list[:vm] = vm
@fact_list[fact_name]
end
end
end
end
end
end