summaryrefslogtreecommitdiff
path: root/doc/forum/support_for_non-bootable_disk_images/comment_1_4c4a376db9071336011abbf2993022f2._comment
blob: 60cbc9f091fb0635dc1d8ff27c39c7c6a81f243d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[[!comment format=mdwn
 username="david"
 avatar="http://cdn.libravatar.org/avatar/22c2d800db6a7699139df604a67cb221"
 subject="Initial attempt"
 date="2018-10-08T12:43:42Z"
 content="""
I tried to solve this in the stupidest possible way. I'll paste diff here, as it's small and I'm not really confident it's ready for merging.


[[!format \"\"\"
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

\"\"\"]]
"""]]