summaryrefslogtreecommitdiff
path: root/modules/syslinux/lib/facter/efibootmgr.rb
diff options
context:
space:
mode:
Diffstat (limited to 'modules/syslinux/lib/facter/efibootmgr.rb')
-rw-r--r--modules/syslinux/lib/facter/efibootmgr.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/syslinux/lib/facter/efibootmgr.rb b/modules/syslinux/lib/facter/efibootmgr.rb
new file mode 100644
index 0000000..fdf95e0
--- /dev/null
+++ b/modules/syslinux/lib/facter/efibootmgr.rb
@@ -0,0 +1,19 @@
+Facter.add('efi') do
+ setcode do
+ out = {}
+ data = Facter::Core::Execution.execute('efibootmgr')
+ boots = {}
+ data.split("\n").each do |item|
+ if a = item.match(/BootOrder: (.*)/) then
+ out['BootOrder'] = a[1].split(',')
+ elsif a = item.match(/(\w*): (.*)/) then
+ out[a[1]] = a[2]
+ elsif a = item.match(/Boot(\d*)(\*?) (.*)/)
+ # a[2] contains if it's active
+ boots[a[1]] = a[3]
+ end
+ end
+ out['boots'] = boots
+ out
+ end
+end