]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blobdiff - lib/Program.hs
Add ghc (#129)
[xdg-ninja.git] / lib / Program.hs
index 1f1ad958cf4fc5b09693368f80e2455c035bc617..98261524212b137c81ae53c4c2ed33f7477c82c6 100644 (file)
@@ -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)