summaryrefslogtreecommitdiff
path: root/src/ConfigFile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ConfigFile.hs')
-rw-r--r--src/ConfigFile.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ConfigFile.hs b/src/ConfigFile.hs
index bc5e254..08aa914 100644
--- a/src/ConfigFile.hs
+++ b/src/ConfigFile.hs
@@ -48,6 +48,7 @@ data Patch = Patch deriving (Show, Read)
48data BaseImageSpecification 48data BaseImageSpecification
49 = EmptyImageOfBytes Int64 49 = EmptyImageOfBytes Int64
50 | ParentImageConfigFile FilePath 50 | ParentImageConfigFile FilePath
51 | SeededImage Int64 FilePath
51 deriving (Show, Read) 52 deriving (Show, Read)
52 53
53data DiskImageConfig = DiskImageConfig { 54data DiskImageConfig = DiskImageConfig {
@@ -60,6 +61,7 @@ data DiskImageConfig = DiskImageConfig {
60, chrootCommands :: Vector Text 61, chrootCommands :: Vector Text
61, skelFiles :: Vector Text 62, skelFiles :: Vector Text
62, optionalSkelFiles :: Vector Text 63, optionalSkelFiles :: Vector Text
64, newSeededImgSize :: Maybe Int64
63} deriving (Show, Read) 65} deriving (Show, Read)
64 66
65parsePackageName :: Text -> Package 67parsePackageName :: Text -> Package
@@ -77,7 +79,12 @@ diskImageConfigParser = object $
77 <*> defaultField "chroot-commands" Vector.empty (array string) 79 <*> defaultField "chroot-commands" Vector.empty (array string)
78 <*> defaultField "skel-files" Vector.empty (array string) 80 <*> defaultField "skel-files" Vector.empty (array string)
79 <*> defaultField "skel-files-optional" Vector.empty (array string) 81 <*> defaultField "skel-files-optional" Vector.empty (array string)
82 <*> optField "seedme" integer
83
84convSeeded :: DiskImageConfig -> DiskImageConfig
85convSeeded x@(DiskImageConfig (ParentImageConfigFile f) _ _ _ _ _ _ _ _ (Just size)) = x { initialImage = SeededImage size f }
86convSeeded x = x
80 87
81readCfg :: FilePath -> Action DiskImageConfig 88readCfg :: FilePath -> Action DiskImageConfig
82readCfg yaml = either error id . parse diskImageConfigParser . encodeUtf8 . pack <$> readFile' yaml 89readCfg yaml = either error convSeeded . parse diskImageConfigParser . encodeUtf8 . pack <$> readFile' yaml
83 90