summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@cryptonomic.net>2022-01-10 20:49:36 -0500
committerAndrew Cady <d@cryptonomic.net>2022-01-10 20:50:19 -0500
commitd21fc297344f639362e89b9746f7570858b037ca (patch)
treefc46d59659e0c11e7cfb0c37894f1a8a4c3bdf60
parent799128b2e4b3f7cad1afe5ab237e7eed8038fc64 (diff)
new fsmgr .yaml config directive: "files"
-rw-r--r--fsmgr.hs7
-rw-r--r--src/ConfigFile.hs4
2 files changed, 10 insertions, 1 deletions
diff --git a/fsmgr.hs b/fsmgr.hs
index ed09669..f6569b6 100644
--- a/fsmgr.hs
+++ b/fsmgr.hs
@@ -175,6 +175,13 @@ buildRoot config@DiskImageConfig{..} finalOut = do
175 in do 175 in do
176 forM_ (unpack <$> binaries) go 176 forM_ (unpack <$> binaries) go
177 forM_ (unpack <$> optionalBinaries) $ ignoreErrors . go 177 forM_ (unpack <$> optionalBinaries) $ ignoreErrors . go
178 {- 3.2 data files -}
179 let go b = do
180 need [b]
181 target <- absPath mountpoint
182 putQuiet $ show (target, b)
183 cmd_ "cp -L" [b] [target ++ b]
184 in forM_ (unpack <$> dataFiles) go
178 {- 3.5 skel -} 185 {- 3.5 skel -}
179 let go f = when (not $ null f) $ do 186 let go f = when (not $ null f) $ do
180 homeDir <- getHomeDir 187 homeDir <- getHomeDir
diff --git a/src/ConfigFile.hs b/src/ConfigFile.hs
index d7fe60d..7ba2439 100644
--- a/src/ConfigFile.hs
+++ b/src/ConfigFile.hs
@@ -59,6 +59,7 @@ data DiskImageConfig = DiskImageConfig {
59, unitFiles :: Vector Text 59, unitFiles :: Vector Text
60, binaries :: Vector Text 60, binaries :: Vector Text
61, optionalBinaries :: Vector Text 61, optionalBinaries :: Vector Text
62, dataFiles :: Vector Text
62, chrootCommands :: Vector Text 63, chrootCommands :: Vector Text
63, skelFiles :: Vector Text 64, skelFiles :: Vector Text
64, optionalSkelFiles :: Vector Text 65, optionalSkelFiles :: Vector Text
@@ -79,6 +80,7 @@ diskImageConfigParser = object $
79 <*> defaultField "unit-files" Vector.empty (array string) 80 <*> defaultField "unit-files" Vector.empty (array string)
80 <*> defaultField "binaries" Vector.empty (array string) 81 <*> defaultField "binaries" Vector.empty (array string)
81 <*> defaultField "binaries-optional" Vector.empty (array string) 82 <*> defaultField "binaries-optional" Vector.empty (array string)
83 <*> defaultField "files" Vector.empty (array string)
82 <*> defaultField "chroot-commands" Vector.empty (array string) 84 <*> defaultField "chroot-commands" Vector.empty (array string)
83 <*> defaultField "skel-files" Vector.empty (array string) 85 <*> defaultField "skel-files" Vector.empty (array string)
84 <*> defaultField "skel-files-optional" Vector.empty (array string) 86 <*> defaultField "skel-files-optional" Vector.empty (array string)
@@ -86,7 +88,7 @@ diskImageConfigParser = object $
86 <*> defaultField "apt-update" False bool 88 <*> defaultField "apt-update" False bool
87 89
88convSeeded :: DiskImageConfig -> DiskImageConfig 90convSeeded :: DiskImageConfig -> DiskImageConfig
89convSeeded x@(DiskImageConfig (ParentImageConfigFile f) _ _ _ _ _ _ _ _ _ (Just size) _) = x { initialImage = SeededImage size f } 91convSeeded x@(DiskImageConfig (ParentImageConfigFile f) _ _ _ _ _ _ _ _ _ _ (Just size) _) = x { initialImage = SeededImage size f }
90convSeeded x = x 92convSeeded x = x
91 93
92readCfg :: FilePath -> Action DiskImageConfig 94readCfg :: FilePath -> Action DiskImageConfig