summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess2018-10-13 20:44:44 -0400
committerJoey Hess2018-10-13 20:44:44 -0400
commit85ae22f03996b2e1ff609e08fb514824878947ef (patch)
treefd21c784bed90ffda5a7fee75523dd31b8d92201
parentf0b5074f107d1da2043701894254f7e85b090331 (diff)
parented118fb909ff5d5f5d030570878bdb1c0fe0ff18 (diff)
Merge remote-tracking branch 'remotes/bremner/proposed/direct-boot'
-rw-r--r--propellor.cabal1
-rw-r--r--src/Propellor/Property/DirectBoot.hs7
-rw-r--r--src/Propellor/Property/DiskImage.hs4
-rw-r--r--src/Propellor/Types/Bootloader.hs2
4 files changed, 14 insertions, 0 deletions
diff --git a/propellor.cabal b/propellor.cabal
index 0454fc92..518505a4 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -74,6 +74,7 @@ Library
Propellor.Property.Cron
Propellor.Property.DebianMirror
Propellor.Property.Debootstrap
+ Propellor.Property.DirectBoot
Propellor.Property.DiskImage
Propellor.Property.DiskImage.PartSpec
Propellor.Property.Dns
diff --git a/src/Propellor/Property/DirectBoot.hs b/src/Propellor/Property/DirectBoot.hs
new file mode 100644
index 00000000..4807471e
--- /dev/null
+++ b/src/Propellor/Property/DirectBoot.hs
@@ -0,0 +1,7 @@
+module Propellor.Property.DirectBoot(installed) where
+
+import Propellor.Base
+import Propellor.Types.Bootloader
+
+installed :: Property (HasInfo + UnixLike)
+installed = pureInfoProperty "direct boot" [DirectBoot]
diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs
index 289de151..a41af18c 100644
--- a/src/Propellor/Property/DiskImage.hs
+++ b/src/Propellor/Property/DiskImage.hs
@@ -228,6 +228,7 @@ imageBuilt' rebuild img mkchroot tabletype partspec =
ubootFlashKernelFinalized p
[FlashKernelInstalled, UbootInstalled p] ->
ubootFlashKernelFinalized p
+ [DirectBoot] -> directBootFinalized
_ -> unbootable "multiple bootloaders are installed; don't know which to use"
-- | This property is automatically added to the chroot when building a
@@ -469,6 +470,9 @@ grubFinalized grubtarget _img mnt loopdevs =
ubootFinalized :: (FilePath -> FilePath -> Property Linux) -> Finalization
ubootFinalized p (RawDiskImage img) mnt _loopdevs = p img mnt
+directBootFinalized :: Finalization
+directBootFinalized _img _mnt _loopDevs = doNothing
+
flashKernelFinalized :: Finalization
flashKernelFinalized _img mnt _loopdevs = FlashKernel.flashKernelMounted mnt
diff --git a/src/Propellor/Types/Bootloader.hs b/src/Propellor/Types/Bootloader.hs
index 65117bd2..cdb37a31 100644
--- a/src/Propellor/Types/Bootloader.hs
+++ b/src/Propellor/Types/Bootloader.hs
@@ -10,6 +10,7 @@ data BootloaderInstalled
= GrubInstalled GrubTarget
| FlashKernelInstalled
| UbootInstalled (FilePath -> FilePath -> Property Linux)
+ | DirectBoot
deriving (Typeable)
-- | Platforms that grub can boot.
@@ -19,6 +20,7 @@ instance Show BootloaderInstalled where
show (GrubInstalled _) = "GrubInstalled"
show FlashKernelInstalled = "FlashKernelInstalled"
show (UbootInstalled _) = "UbootInstalled"
+ show DirectBoot = "DirectBoot"
instance IsInfo [BootloaderInstalled] where
propagateInfo _ = PropagateInfo False