Hello community, here is the log from the commit of package ghc-read-env-var for openSUSE:Factory checked in at 2016-11-02 12:47:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-read-env-var (Old) and /work/SRC/openSUSE:Factory/.ghc-read-env-var.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-read-env-var" Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-read-env-var/ghc-read-env-var.changes 2016-10-22 13:19:07.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-read-env-var.new/ghc-read-env-var.changes 2016-11-02 12:47:38.000000000 +0100 @@ -1,0 +2,5 @@ +Sun Aug 21 17:10:59 UTC 2016 - psimons@suse.com + +- Update to version 0.1.0.1 revision 0 with cabal2obs. + +------------------------------------------------------------------- Old: ---- read-env-var-0.1.0.0.tar.gz New: ---- read-env-var-0.1.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-read-env-var.spec ++++++ --- /var/tmp/diff_new_pack.57PjUs/_old 2016-11-02 12:47:39.000000000 +0100 +++ /var/tmp/diff_new_pack.57PjUs/_new 2016-11-02 12:47:39.000000000 +0100 @@ -19,22 +19,20 @@ %global pkg_name read-env-var %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.1.0.0 +Version: 0.1.0.1 Release: 0 Summary: Functions for safely reading environment variables License: BSD-3-Clause -Group: System/Libraries +Group: Development/Languages/Other Url: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros BuildRoot: %{_tmppath}/%{name}-%{version}-build -# Begin cabal-rpm deps: %if %{with tests} BuildRequires: ghc-Glob-devel BuildRequires: ghc-doctest-devel %endif -# End cabal-rpm deps %description Please see README.md. @@ -53,20 +51,14 @@ %prep %setup -q -n %{pkg_name}-%{version} - %build %ghc_lib_build - %install %ghc_lib_install - %check -%if %{with tests} -%{cabal} test -%endif - +%cabal_test %post devel %ghc_pkg_recache ++++++ read-env-var-0.1.0.0.tar.gz -> read-env-var-0.1.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/read-env-var-0.1.0.0/read-env-var.cabal new/read-env-var-0.1.0.1/read-env-var.cabal --- old/read-env-var-0.1.0.0/read-env-var.cabal 2016-04-07 08:56:14.000000000 +0200 +++ new/read-env-var-0.1.0.1/read-env-var.cabal 2016-08-15 19:56:50.000000000 +0200 @@ -1,5 +1,5 @@ name: read-env-var -version: 0.1.0.0 +version: 0.1.0.1 synopsis: Functions for safely reading environment variables. description: Please see README.md homepage: https://github.com/cdepillabout/read-env-var#readme diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/read-env-var-0.1.0.0/src/System/ReadEnvVar.hs new/read-env-var-0.1.0.1/src/System/ReadEnvVar.hs --- old/read-env-var-0.1.0.0/src/System/ReadEnvVar.hs 2016-04-07 09:33:41.000000000 +0200 +++ new/read-env-var-0.1.0.1/src/System/ReadEnvVar.hs 2016-08-15 19:55:31.000000000 +0200 @@ -14,6 +14,7 @@ module System.ReadEnvVar ( readEnvVar , readEnvVarDef + , lookupEnvDef ) where #if __GLASGOW_HASKELL__ < 710 @@ -23,6 +24,7 @@ #endif import Data.Maybe (fromMaybe) +import Data.String (IsString(fromString)) import System.Environment (lookupEnv) import Text.Read (readMaybe) @@ -30,12 +32,20 @@ -- 'readMaybe'. If the environment variable doesn't exist, or it can't be -- 'read', use the default value. -- +-- Note that this does not read string values as one would expect. +-- -- >>> import System.Environment (setEnv) --- >>> setEnv "TEST_ENV_VAR" "1000" --- >>> readEnvVarDef "TEST_ENV_VAR" 5 :: IO Int +-- >>> setEnv "TEST_ENV_VAR1" "1000" +-- >>> readEnvVarDef "TEST_ENV_VAR1" 5 :: IO Int -- 1000 -- >>> readEnvVarDef "THIS_ENV_VAR_WILL_NOT_EXIST" 5 :: IO Int -- 5 +-- >>> setEnv "TEST_ENV_VAR2" "some string 1" +-- >>> readEnvVarDef "TEST_ENV_VAR2" "def val" :: IO String +-- "def val" +-- >>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" +-- >>> readEnvVarDef "TEST_ENV_VAR3" "def val" :: IO String +-- "some string 1" readEnvVarDef :: Read a => String -- ^ environment variable to lookup -> a -- ^ default value to use if the environment variable @@ -46,17 +56,36 @@ -- | Lookup a value from an environment variable and read it in with -- 'readMaybe'. -- +-- Note that this does not read string values as one would expect. +-- -- >>> import System.Environment (setEnv) -- >>> setEnv "TEST_ENV_VAR" "2000" -- >>> readEnvVar "TEST_ENV_VAR" :: IO (Maybe Int) -- Just 2000 -- >>> readEnvVar "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO (Maybe Int) -- Nothing +-- >>> setEnv "TEST_ENV_VAR2" "some string 1" +-- >>> readEnvVar "TEST_ENV_VAR2" :: IO (Maybe String) +-- Nothing +-- >>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" +-- >>> readEnvVar "TEST_ENV_VAR3" :: IO (Maybe String) +-- Just "some string 1" readEnvVar :: Read a => String -- ^ environment variable to lookup -> IO (Maybe a) -readEnvVar envVar = do - maybeEnvVal <- lookupEnv envVar - case maybeEnvVal of - Nothing -> return Nothing - Just envVal -> return $ readMaybe envVal +readEnvVar = fmap (>>= readMaybe) . lookupEnv + +-- | Like 'lookupEnv' but take a default value. +-- +-- >>> import System.Environment (setEnv) +-- >>> setEnv "TEST_ENV_VAR" "foo" +-- >>> lookupEnvDef "TEST_ENV_VAR" "bar" :: IO String +-- "foo" +-- >>> lookupEnvDef "THIS_ENV_VAR_WILL_NOT_EXIST" "bar" :: IO String +-- "bar" +lookupEnvDef :: IsString a + => String -- ^ environment variable to lookup + -> a -- ^ default value to use if environment variable not defined + -> IO a +lookupEnvDef envVar defaultValue = + pure . maybe defaultValue fromString =<< lookupEnv envVar