packages feed

cachix-0.3.1: cachix/Main.hs

module Main (main) where

import qualified Cachix.Client as CC
import Cachix.Client.Exception (CachixException)
import Control.Exception (displayException, handle)
import GHC.IO.Encoding
import System.Exit (exitFailure)
import System.IO

main :: IO ()
main = do
  setLocaleEncoding utf8
  hSetBuffering stdout LineBuffering
  hSetBuffering stderr LineBuffering
  handleExceptions CC.main

handleExceptions :: IO a -> IO a
handleExceptions = handle handler
  where
    handler :: CachixException -> IO a
    handler e = do
      hPutStrLn stderr ""
      hPutStr stderr (displayException e)
      hFlush stderr
      exitFailure