diff options
| author | Joey Hess <joeyh@joeyh.name> | 2017-07-05 20:19:19 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2017-07-05 20:19:33 -0400 |
| commit | 68f864299303ac8d510f19d67e8d7e6fe0681138 (patch) | |
| tree | d026a14a58b374e8177da966a6b5d66b8f6ce303 /src/Propellor/Property/Grub.hs | |
| parent | 7bbbfea9c9693508482e88ec0d4a5e8c4ee81e6a (diff) | |
DiskImage: Removed grubBooted
Properties that used to need it as a parameter now look at Info about the
bootloader that is installed in the chroot that the disk image is created
from. (API change)
This is a simplication, and avoids the user needing to repeat themselves
in the propellor config, thus avoiding mistakes.
When no boot loader is installed, or multiple different ones are,
disk image creation will fail, which seems reasonable.
This commit was sponsored by Jake Vosloo on Patreon.
Diffstat (limited to 'src/Propellor/Property/Grub.hs')
| -rw-r--r-- | src/Propellor/Property/Grub.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Propellor/Property/Grub.hs b/src/Propellor/Property/Grub.hs index 0eaab2bb..4bad7b2b 100644 --- a/src/Propellor/Property/Grub.hs +++ b/src/Propellor/Property/Grub.hs @@ -4,6 +4,8 @@ import Propellor.Base import qualified Propellor.Property.File as File import qualified Propellor.Property.Apt as Apt import Propellor.Property.Chroot (inChroot) +import Propellor.Types.Info +import Propellor.Types.Bootloader -- | Eg, \"hd0,0\" or \"xen/xvda1\" type GrubDevice = String @@ -20,7 +22,7 @@ data BIOS = PC | EFI64 | EFI32 | Coreboot | Xen -- bootloader. -- -- This includes running update-grub, unless it's run in a chroot. -installed :: BIOS -> Property DebianLike +installed :: BIOS -> Property (HasInfo + DebianLike) installed bios = installed' bios `onChange` (check (not <$> inChroot) mkConfig) @@ -31,11 +33,11 @@ mkConfig = tightenTargets $ cmdProperty "update-grub" [] `assume` MadeChange -- | Installs grub; does not run update-grub. -installed' :: BIOS -> Property Linux -installed' bios = (aptinstall `pickOS` unsupportedOS) +installed' :: BIOS -> Property (HasInfo + DebianLike) +installed' bios = setInfoProperty aptinstall + (toInfo [GrubInstalled]) `describe` "grub package installed" where - aptinstall :: Property DebianLike aptinstall = Apt.installed [debpkg] debpkg = case bios of PC -> "grub-pc" @@ -66,7 +68,7 @@ boots dev = tightenTargets $ cmdProperty "grub-install" [dev] -- -- The rootdev should be in the form "hd0", while the bootdev is in the form -- "xen/xvda". -chainPVGrub :: GrubDevice -> GrubDevice -> TimeoutSecs -> Property DebianLike +chainPVGrub :: GrubDevice -> GrubDevice -> TimeoutSecs -> Property (HasInfo + DebianLike) chainPVGrub rootdev bootdev timeout = combineProperties desc $ props & File.dirExists "/boot/grub" & "/boot/grub/menu.lst" `File.hasContent` |
