diff --git a/custom/plugins/facter/console_type.rb b/custom/plugins/facter/console_type.rb new file mode 100644 index 0000000..52945ec --- /dev/null +++ b/custom/plugins/facter/console_type.rb @@ -0,0 +1,30 @@ + +Facter.add('console_type') do + setcode do + begin + Facter.kernel + rescue + Facter.loadfacts() + end + console = 'vga' + kernel = Facter.value('kernel') + if kernel == 'Linux' + File.open('/proc/cmdline', 'r') do |f| + while line = f.gets + if line =~ /console=ttyS[0-9]/ + console = 'serial' + end + end + end + elsif kernel == 'OpenBSD' + File.open('/etc/boot.conf', 'r') do |f| + while line = f.gets + if line =~ /^set tty com[0-9]$/ + console = 'serial' + end + end + end + end + console + end +end