From d35c1c7ad1539da24e6ab071d8d669912f330f0c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 25 Jul 2017 17:48:47 -0400 Subject: new properties * Added Rsync.installed property. * Added DiskImage.vmdkBuilt property which is useful for booting a disk image in VirtualBox. --- src/Propellor/Property/DiskImage.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/Propellor/Property/DiskImage.hs') diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs index 950da58c..dd42265d 100644 --- a/src/Propellor/Property/DiskImage.hs +++ b/src/Propellor/Property/DiskImage.hs @@ -13,6 +13,7 @@ module Propellor.Property.DiskImage ( imageRebuilt, imageBuiltFrom, imageExists, + vmdkBuilt, Grub.BIOS(..), ) where @@ -409,3 +410,18 @@ toSysDir :: FilePath -> FilePath -> FilePath toSysDir chrootdir d = case makeRelative chrootdir d of "." -> "/" sysdir -> "/" ++ sysdir + +-- | Builds a VirtualBox .vmdk file for the specified disk image file. +vmdkBuilt :: FilePath -> RevertableProperty DebianLike UnixLike +vmdkBuilt diskimage = (setup cleanup) + `describe` (vmdkfile ++ " built") + where + vmdkfile = diskimage ++ ".vmdk" + setup = cmdProperty "VBoxManage" + [ "internalcommands", "createrawvmdk" + , "-filename", vmdkfile + , "-rawdisk", diskimage + ] + `changesFile` vmdkfile + `requires` Apt.installed ["virtualbox"] + cleanup = File.notPresent vmdkfile -- cgit v1.2.3