liblawless 0.21.0 → 0.21.1
raw patch · 2 files changed
+38/−15 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Environment: Arg :: Text -> Arg
- Environment: EnvName :: Text -> EnvName
- Environment: EnvValue :: Text -> EnvValue
- Environment: ProgName :: Text -> ProgName
- Environment: [unArg] :: Arg -> Text
- Environment: [unEnvName] :: EnvName -> Text
- Environment: [unEnvValue] :: EnvValue -> Text
- Environment: [unProgName] :: ProgName -> Text
- Environment: lookupEnv :: MonadIO m => EnvName -> m (Maybe EnvValue)
- Environment: newtype Arg
- Environment: newtype EnvName
- Environment: newtype EnvValue
- Environment: newtype ProgName
- Environment: setEnv :: MonadIO m => EnvName -> EnvValue -> m ()
+ Environment: _EnvName :: Iso' EnvName Text
+ Environment: _EnvValue :: Iso' EnvValue Text
+ Environment: _ProgName :: Iso' ProgName Text
+ Environment: data EnvName
+ Environment: data EnvValue
+ Environment: data ProgName
Files
- Source/Environment.hs +36/−13
- liblawless.cabal +2/−2
Source/Environment.hs view
@@ -1,3 +1,5 @@+{-# Language TemplateHaskell #-}+ {-| Module: Environment Description: Execution environment, but as Text and lifted to MonadIO.@@ -8,8 +10,21 @@ Portability: POSIX -} -module Environment where+module Environment (+ EnvName,+ _EnvName, + EnvValue,+ _EnvValue,++ environment,+ args,++ ProgName,+ _ProgName,+ progName+ )where+ import Lawless import IO import Text@@ -18,16 +33,20 @@ import qualified System.Environment as SE -- | A key in the 'Environment'.-newtype EnvName = EnvName {unEnvName ∷ Text} deriving (Eq, Ord, Show, Printable)+newtype EnvName = EnvName Text deriving (Eq, Ord, Show, Printable)+makePrisms ''EnvName+ instance IsText EnvName where- packed = iso (EnvName ∘ view packed) (view unpacked ∘ unEnvName)- builder = iso (view builder ∘ unEnvName) (EnvName ∘ review builder)+ packed = iso (EnvName ∘ view packed) (view unpacked ∘ view _EnvName)+ builder = iso (view builder ∘ view _EnvName) (EnvName ∘ review builder) -- | A value in the 'Environment'-newtype EnvValue = EnvValue {unEnvValue ∷ Text} deriving (Eq, Ord, Show, Printable)+newtype EnvValue = EnvValue Text deriving (Eq, Ord, Show, Printable)+makePrisms ''EnvValue+ instance IsText EnvValue where- packed = iso (EnvValue ∘ view packed) (view unpacked ∘ unEnvValue)- builder = iso (view builder ∘ unEnvValue) (EnvValue ∘ review builder)+ packed = iso (EnvValue ∘ view packed) (view unpacked ∘ view _EnvValue)+ builder = iso (view builder ∘ view _EnvValue) (EnvValue ∘ review builder) lookupEnv ∷ MonadIO m ⇒ EnvName → m (Maybe EnvValue) lookupEnv k =@@ -58,18 +77,22 @@ environment ∷ MonadIO m ⇒ Lens EnvName (m ()) (m (Maybe EnvValue)) EnvValue environment = lens lookupEnv setEnv -newtype Arg = Arg {unArg ∷ Text} deriving (Eq, Show, Ord, Printable)+newtype Arg = Arg Text deriving (Eq, Show, Ord, Printable)+makePrisms ''Arg+ instance IsText Arg where- packed = iso (Arg ∘ view packed) (view unpacked ∘ unArg)- builder = iso (view builder ∘ unArg) (Arg ∘ review builder)+ packed = iso (Arg ∘ view packed) (view unpacked ∘ view _Arg)+ builder = iso (view builder ∘ view _Arg) (Arg ∘ review builder) args ∷ (MonadIO m) ⇒ m [Arg] args = liftIO $ over traversed (view packed) <$> SE.getArgs -newtype ProgName = ProgName {unProgName ∷ Text} deriving (Eq, Show, Ord, Printable)+newtype ProgName = ProgName Text deriving (Eq, Show, Ord, Printable)+makePrisms ''ProgName+ instance IsText ProgName where- packed = iso (ProgName ∘ view packed) (view unpacked ∘ unProgName)- builder = iso (view builder ∘ unProgName) (ProgName ∘ review builder)+ packed = iso (ProgName ∘ view packed) (view unpacked ∘ view _ProgName)+ builder = iso (view builder ∘ view _ProgName) (ProgName ∘ review builder) progName ∷ (MonadIO m) ⇒ m ProgName progName = liftIO $ view packed <$> SE.getProgName
liblawless.cabal view
@@ -1,5 +1,5 @@ name: liblawless-version: 0.21.0+version: 0.21.1 synopsis: Prelude based on protolude for GHC 8 and beyond. license: GPL-3 license-file: LICENSE@@ -28,7 +28,7 @@ source-repository this type: git location: git@gitlab.com:misandrist/liblawless.git- tag: v0.21.0+ tag: v0.21.1 library ghc-options: -Wall -Wno-redundant-constraints -Wno-type-defaults -O2