summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Propellor/Property/DiskImage.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Propellor/Property/DiskImage.hs b/src/Propellor/Property/DiskImage.hs
index dd42265d..55ccad76 100644
--- a/src/Propellor/Property/DiskImage.hs
+++ b/src/Propellor/Property/DiskImage.hs
@@ -13,7 +13,7 @@ module Propellor.Property.DiskImage (
imageRebuilt,
imageBuiltFrom,
imageExists,
- vmdkBuilt,
+ vmdkBuiltFor,
Grub.BIOS(..),
) where
@@ -34,6 +34,7 @@ import Propellor.Types.Info
import Propellor.Types.Bootloader
import Propellor.Container
import Utility.Path
+import Utility.FileMode
import Data.List (isPrefixOf, isInfixOf, sortBy, unzip4)
import Data.Function (on)
@@ -412,8 +413,8 @@ 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)
+vmdkBuiltFor :: FilePath -> RevertableProperty DebianLike UnixLike
+vmdkBuiltFor diskimage = (setup <!> cleanup)
`describe` (vmdkfile ++ " built")
where
vmdkfile = diskimage ++ ".vmdk"
@@ -423,5 +424,7 @@ vmdkBuilt diskimage = (setup <!> cleanup)
, "-rawdisk", diskimage
]
`changesFile` vmdkfile
+ `onChange` File.mode vmdkfile (combineModes (ownerWriteMode : readModes))
`requires` Apt.installed ["virtualbox"]
+ `requires` File.notPresent vmdkfile
cleanup = File.notPresent vmdkfile