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 +7/−0
- opt-env-conf.cabal +5/−2
- src/OptEnvConf/Completer.hs +1/−2
- src/OptEnvConf/Run.hs +1/−1
- src/OptEnvConf/Terminal.hs +20/−0
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