packages feed

opt-env-conf 0.11.0.0 → 0.11.1.0

raw patch · 5 files changed

+34/−5 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ OptEnvConf.Terminal: getTerminalCapabilitiesFromHandle :: Handle -> IO TerminalCapabilities

Files

CHANGELOG.md view
@@ -1,5 +1,12 @@ # Changelog ++## [0.11.1.0] - 2025-10-23++### Added++* Windows support by isolating platform-specific terminal code.+ ## [0.11.0.0] - 2025-09-29  This is technically a breaking change, but if you don't use any `opt-env-conf`
opt-env-conf.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           opt-env-conf-version:        0.11.0.0+version:        0.11.1.0 synopsis:       Settings parsing for Haskell: command-line arguments, environment variables, and configuration values. homepage:       https://github.com/NorfairKing/opt-env-conf#readme bug-reports:    https://github.com/NorfairKing/opt-env-conf/issues@@ -40,6 +40,7 @@       OptEnvConf.Reader       OptEnvConf.Run       OptEnvConf.Setting+      OptEnvConf.Terminal       OptEnvConf.Validation   other-modules:       Paths_opt_env_conf@@ -60,9 +61,11 @@     , path-io     , safe-coloured-text >=0.3.0.2     , safe-coloured-text-layout >=0.2.0.0-    , safe-coloured-text-terminfo     , selective     , text     , validity     , validity-containers   default-language: Haskell2010+  if !os(windows)+    build-depends:+        safe-coloured-text-terminfo
src/OptEnvConf/Completer.hs view
@@ -14,7 +14,6 @@ import Data.Maybe import Path import Path.IO-import Path.Internal.Posix (Path (..))  newtype Completer = Completer {unCompleter :: String -> IO [String]} @@ -149,7 +148,7 @@         ]  hiddenRel :: Path Rel f -> Bool-hiddenRel (Path s) = case s of+hiddenRel p = case toFilePath p of   ('.' : _) -> True   _ -> False 
src/OptEnvConf/Run.hs view
@@ -46,13 +46,13 @@ import OptEnvConf.Parser import OptEnvConf.Reader import OptEnvConf.Setting+import OptEnvConf.Terminal (getTerminalCapabilitiesFromHandle) import OptEnvConf.Validation import Path import System.Environment (getArgs, getEnvironment, getProgName) import System.Exit import System.IO import Text.Colour-import Text.Colour.Capabilities.FromEnv  -- | Run 'runParser' on your @Settings@' type's 'settingsParser'. --
+ src/OptEnvConf/Terminal.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE CPP #-}++module OptEnvConf.Terminal+  ( getTerminalCapabilitiesFromHandle,+  )+where++#if !defined(mingw32_HOST_OS)+import Text.Colour.Capabilities.FromEnv (getTerminalCapabilitiesFromHandle)+#else+import System.IO (Handle, hIsTerminalDevice)+import Text.Colour.Capabilities (TerminalCapabilities (..))++getTerminalCapabilitiesFromHandle :: Handle -> IO TerminalCapabilities+getTerminalCapabilitiesFromHandle h = do+  isTerm <- hIsTerminalDevice h+  pure $ if isTerm then With8BitColours else WithoutColours+  -- Note: This may be conservative. Modern Windows terminals (Windows 10+)+  -- support 24-bit RGB colors when VT processing is enabled.+#endif