X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/xdg-ninja.git/blobdiff_plain/0ed6693f66fb949929b6d59b1b79dc87be538d61..696061d265fbb9565f4e1ad085f6acc9c73adb9f:/lib/Program.hs diff --git a/lib/Program.hs b/lib/Program.hs index 1f1ad95..9826152 100644 --- a/lib/Program.hs +++ b/lib/Program.hs @@ -8,6 +8,7 @@ import Data.Aeson.Encode.Pretty import qualified Data.ByteString.Lazy as B import qualified Data.Text as T import GHC.Generics +import System.Directory instance FromJSON File where parseJSON (Object v) = File @@ -54,4 +55,10 @@ makeFilename s = T.pack ( "./programs/" ++ T.unpack s ++ ".json" ) save :: T.Text -> Program -> IO () save filename program = do + createDirectoryIfMissing False "./programs/" B.writeFile (T.unpack filename) (encodePretty program) + +readProgram :: String -> IO ( Maybe Program ) +readProgram filename = do + json_data <- B.readFile filename + return (decode json_data)