packages feed

Agda-2.9.0: src/full/Agda/Utils/IO/TempFile.hs

{-# OPTIONS_GHC -Wunused-imports #-}

-- | Common syntax highlighting functions for Emacs and JSON

module Agda.Utils.IO.TempFile
  ( writeToTempFile
  ) where

import Control.Exception qualified as E
import System.Directory qualified as D
import System.IO qualified as IO

-- | Creates a temporary file, writes some stuff, and returns the filepath
writeToTempFile :: String -> IO FilePath
writeToTempFile content = do
  dir      <- D.getTemporaryDirectory
  E.bracket (IO.openTempFile dir "agda2-mode") (IO.hClose . snd) $ \ (filepath, handle) -> do
    IO.hSetEncoding handle IO.utf8
    IO.hPutStr handle content
    return filepath