about summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/tests/java_classpath/Main.hs
blob: 13f7b9d5168409b2ba0c0105b674a2d9327f653d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{-# LANGUAGE LambdaCase      #-}
{-# LANGUAGE TemplateHaskell #-}
module Main (main) where

import qualified Language.Haskell.TH as TH (runIO)
import qualified Language.Haskell.TH.Syntax as TH (lift)
import           System.Environment (lookupEnv)

main :: IO ()
main = putStrLn $(
  let ensureClassPath :: IO String
      ensureClassPath = lookupEnv "CLASSPATH" >>= \case
        Nothing -> error "CLASSPATH not set when it was expected to be."
        Just "" -> error "CLASSPATH empty when it was expected to have content."
        Just cpath -> pure $ "java-classpath at compile time: " ++ cpath
  in TH.runIO ensureClassPath >>= TH.lift
  )