diff options
Diffstat (limited to 'src/ConfigFile.hs')
-rw-r--r-- | src/ConfigFile.hs | 9 |
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) | |||
48 | data BaseImageSpecification | 48 | data 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 | ||
53 | data DiskImageConfig = DiskImageConfig { | 54 | data 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 | ||
65 | parsePackageName :: Text -> Package | 67 | parsePackageName :: 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 | |||
84 | convSeeded :: DiskImageConfig -> DiskImageConfig | ||
85 | convSeeded x@(DiskImageConfig (ParentImageConfigFile f) _ _ _ _ _ _ _ _ (Just size)) = x { initialImage = SeededImage size f } | ||
86 | convSeeded x = x | ||
80 | 87 | ||
81 | readCfg :: FilePath -> Action DiskImageConfig | 88 | readCfg :: FilePath -> Action DiskImageConfig |
82 | readCfg yaml = either error id . parse diskImageConfigParser . encodeUtf8 . pack <$> readFile' yaml | 89 | readCfg yaml = either error convSeeded . parse diskImageConfigParser . encodeUtf8 . pack <$> readFile' yaml |
83 | 90 | ||