From 6b43e08f8937421b87864ca9c9fd55b84acce0c3 Mon Sep 17 00:00:00 2001 From: Bryan Richter Date: Wed, 4 Mar 2015 09:31:26 -0800 Subject: [PATCH 1/2] Add and process Keter option 'extraFiles' --- yesod-bin/Keter.hs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/yesod-bin/Keter.hs b/yesod-bin/Keter.hs index 61b7d8cb..87331c2c 100644 --- a/yesod-bin/Keter.hs +++ b/yesod-bin/Keter.hs @@ -53,14 +53,18 @@ keter cabal noBuild = do [] -> error "No cabal file found" _ -> error "Too many cabal files found" - let findExecs (Object v) = + let findFiles (Object v) = mapM_ go $ Map.toList v where - go ("exec", String s) = tell [F.collapse $ "config" F. F.fromText s] - go (_, v') = findExecs v' - findExecs (Array v) = Fold.mapM_ findExecs v - findExecs _ = return () - execs = execWriter $ findExecs $ Object value + go ("exec", String s) = tellFile s + go ("extraFiles", Array v) = Fold.mapM_ tellFile' v + go (_, v') = findFiles v' + findFiles (Array v) = Fold.mapM_ findFiles v + findFiles _ = return () + bundleFiles = execWriter $ findFiles $ Object value + tellFile s = tell [F.collapse $ "config" F. F.fromText s] + tellFile' (String s) = tellFile s + tellFile' _ = error "extraFiles should be a flat array" unless noBuild $ do run cabal ["clean"] @@ -69,7 +73,8 @@ keter cabal noBuild = do _ <- try' $ F.removeTree "static/tmp" - archive <- Tar.pack "" $ "config" : "static" : map F.encodeString execs + archive <- Tar.pack "" $ + "config" : "static" : map F.encodeString bundleFiles let fp = T.unpack project ++ ".keter" L.writeFile fp $ compress $ Tar.write archive From 5b9e616ee26a715332face3e7e8c36ba2078df90 Mon Sep 17 00:00:00 2001 From: Bryan Richter Date: Wed, 4 Mar 2015 09:55:03 -0800 Subject: [PATCH 2/2] Minor refactor of keter function --- yesod-bin/Keter.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yesod-bin/Keter.hs b/yesod-bin/Keter.hs index 87331c2c..65ff7802 100644 --- a/yesod-bin/Keter.hs +++ b/yesod-bin/Keter.hs @@ -9,7 +9,7 @@ import qualified Data.Text as T import System.Exit import System.Process import Control.Monad -import System.Directory +import System.Directory hiding (findFiles) import Data.Maybe (mapMaybe) import qualified Filesystem.Path.CurrentOS as F import qualified Filesystem as F @@ -57,14 +57,14 @@ keter cabal noBuild = do mapM_ go $ Map.toList v where go ("exec", String s) = tellFile s - go ("extraFiles", Array v) = Fold.mapM_ tellFile' v + go ("extraFiles", Array a) = Fold.mapM_ tellExtra a go (_, v') = findFiles v' + tellFile s = tell [F.collapse $ "config" F. F.fromText s] + tellExtra (String s) = tellFile s + tellExtra _ = error "extraFiles should be a flat array" findFiles (Array v) = Fold.mapM_ findFiles v findFiles _ = return () bundleFiles = execWriter $ findFiles $ Object value - tellFile s = tell [F.collapse $ "config" F. F.fromText s] - tellFile' (String s) = tellFile s - tellFile' _ = error "extraFiles should be a flat array" unless noBuild $ do run cabal ["clean"]