module Buffet.Parse.ParseMenuFromFolder ( get ) where import qualified Buffet.Ir.Ir as Ir import qualified Buffet.Parse.Menu as Menu import qualified Control.Monad as Monad import qualified Data.Map.Strict as Map import qualified Data.Text as T import Prelude (FilePath, IO, ($), (.), fmap, pure) import qualified System.Directory as Directory import qualified System.FilePath as FilePath get :: FilePath -> IO Menu.Menu get menu = do folderEntries <- Directory.listDirectory menu options <- Monad.filterM (Directory.doesDirectoryExist . FilePath.combine menu) folderEntries pure Menu.defaultMenu { Menu.optionToDish = Map.fromList $ fmap (\option -> ( Ir.Option $ T.pack option , FilePath.joinPath [menu, option, "Dockerfile"])) options }