ats-pkg-2.11.0.7: src/Quaalude.cpphs
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Quaalude ( hex
, bool
, intersperse
, transpose
, sortBy
, void
, unless
, when
, join
, fold
, zipWithM_
, zipWithM
, filterM
, encode
, decode
, fromMaybe
, isPrefixOf
, isSuffixOf
, on
, both
, (***)
, (&&&)
, (<=<)
, (<>)
, ($>)
, first
, second
, getEnv
, exitWith
, showVersion
, traverse_
, ExitCode (ExitSuccess)
, MonadIO (..)
-- * Miscellaneous
, makeExe
-- * "System.Process.Ext" reëxports
, silentCreateProcess
-- * "Data.Text.Lazy" reëxports
, Text
, pack
, unpack
-- * "Control.Composition" reëxports
, biaxe
, (.*)
, (.**)
, thread
-- * Dhall reëxports
, Interpret
, Inject
, Generic
, Binary
, input
, auto
, detailed
-- * Shake reëxports
, Rules
, Action
, command
, command_
, (%>)
, need
, want
, shake
, Rebuild (..)
, (~>)
, cmd
, cmd_
, ShakeOptions (..)
, shakeOptions
, copyFile'
, Change (..)
, Verbosity (..)
, removeFilesAfter
, Lint (..)
, takeBaseName
, takeFileName
, takeDirectory
, (-<.>)
, makeExecutable
-- * "Network.HTTP.Client.TLS" reëxports
, tlsManagerSettings
-- "Network.HTTP.Client" reëxports
, newManager
, parseRequest
, httpLbs
, Response (..)
, Request (method, redirectCount)
-- * "System.FilePath" reëxports
, (</>)
, pathSeparator
-- * ByteString reëxports
, ByteString
-- * Helpers for pretty-printing
, (<#>)
-- * "Text.PrettyPrint.ANSI.Leijen" reëxports
, (<+>)
, text
, punctuate
, dullred
, linebreak
, dullyellow
, hardline
, hang
, indent
, putDoc
, Pretty (pretty)
, module X
-- Lens exports
, Lens'
, over
, _Just
, view
, _1
, _2
, _4
, each
, (&)
, (%~)
) where
import Control.Arrow hiding ((<+>))
import Control.Composition
import Control.Monad
import Control.Monad.IO.Class
import Data.Binary
import Data.Bool (bool)
import Data.ByteString.Lazy (ByteString)
import Data.Foldable (fold, traverse_)
import Data.Functor (($>))
import Data.List
import Data.Maybe (fromMaybe)
import Data.Semigroup
import Data.Text.Lazy (pack, unpack)
import Data.Version (showVersion)
import Development.Shake hiding (getEnv)
import Development.Shake.FilePath
import Dhall hiding (bool)
import Lens.Micro hiding (both)
import Lens.Micro.Extras
import Network.HTTP.Client
import Network.HTTP.Client.TLS (tlsManagerSettings)
import Numeric (showHex)
import System.Directory as X
import System.Environment (getEnv)
import System.Exit (ExitCode (ExitSuccess), exitWith)
import System.Info (os)
#ifndef mingw32_HOST_OS
import System.Posix.Files
#endif
import System.Process as X
import System.Process.Ext
import Text.PrettyPrint.ANSI.Leijen hiding (bool, (<$>), (<>), (</>))
infixr 5 <#>
#ifdef mingw32_HOST_OS
makeExecutable :: FilePath -> IO ()
makeExecutable = pure mempty
#else
makeExecutable :: FilePath -> IO ()
makeExecutable = flip setFileMode ownerModes
#endif
makeExe :: String
makeExe = case os of
"freebsd" -> "gmake"
"openbsd" -> "gmake"
"netbsd" -> "gmake"
"solaris" -> "gmake"
"dragonfly" -> "gmake"
_ -> "make"
hex :: Int -> String
hex = flip showHex mempty
instance Semigroup a => Semigroup (Action a) where
(<>) a b = (<>) <$> a <*> b
instance (Semigroup a, Monoid a) => Monoid (Action a) where
mempty = pure mempty
mappend = (<>)
-- | Same as "Text.PrettyPrint.ANSI.Leijen"'s @<$>@, but doesn't clash with the
-- prelude.
(<#>) :: Doc -> Doc -> Doc
(<#>) a b = a <> line <> b