{- | Module : Language.Jsonnet.Std.TH Copyright : (c) 2020-2021 Alexandre Moreno SPDX-License-Identifier : BSD-3-Clause OR Apache-2.0 Maintainer : Alexandre Moreno Stability : experimental Portability : non-portable -} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} module Language.Jsonnet.Std.TH where import qualified Data.Text.IO as TIO import Language.Haskell.TH import Language.Haskell.TH.Quote () import Language.Haskell.TH.Syntax (addDependentFile) import Language.Jsonnet.TH (parse) import TH.RelativePaths (pathRelativeToCabalPackage) stdlibPath :: String stdlibPath = "stdlib/std.jsonnet" mkStdlib :: Q Exp mkStdlib = do fp <- pathRelativeToCabalPackage stdlibPath addDependentFile fp src <- runIO (TIO.readFile stdlibPath) ast <- parse stdlibPath src pure ast