extensible/YAML
package.yaml に含まれている default-extensions と version を抜き出す例。
Main.hs
code: (hs)
#!/usr/bin/env stack
{- stack script
--resolver nightly-2018-05-09
--package extensible
--package yaml
-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module Main where
import Data.Extensible
import Data.Yaml (decodeFileEither, prettyPrintParseException)
import System.Environment (getArgs)
type Package = Record
'[ "default-extensions" >: String
, "version" >: String
]
main :: IO ()
main = do
path <- getArgs
res <- decodeFileEither path
case res of
Left e -> putStrLn $ prettyPrintParseException e
Right cfg -> print (cfg :: Package)
実行例
code: (hs)
$ ./Exten.hs package.yaml
default-extensions @= "OverloadedStrings" <: version @= "0.1.0.0" <: nil
#extensible #YAML