packages feed

configifier 0.0.6 → 0.0.7

raw patch · 2 files changed

+12/−4 lines, 2 filesdep +directorydep +functor-infixPVP ok

version bump matches the API change (PVP)

Dependencies added: directory, functor-infix

API changes (from Hackage documentation)

Files

configifier.cabal view
@@ -1,5 +1,5 @@ name:                configifier-version:             0.0.6+version:             0.0.7 synopsis:            parser for config files, shell variables, command line args. description:         See <https://github.com/zerobuzz/configifier/blob/master/README.md README> license:             AGPL-3@@ -36,7 +36,9 @@     , bytestring >=0.10 && <0.11     , case-insensitive >=1.2 && <1.3     , containers >=0.5 && <0.6+    , directory >=1.2 && <1.3     , either >=4.3 && <4.5+    , functor-infix >=0.0.3 && <0.1     , mtl >=2.1 && <2.3     , regex-easy >=0.1.0.0 && <0.2     , safe >=0.3 && <0.4
src/Data/Configifier.hs view
@@ -24,11 +24,13 @@  import Control.Applicative ((<$>), (<|>)) import Control.Exception (Exception, throwIO)+import Control.Monad (filterM) import Data.ByteString.Char8 (pack) import Data.CaseInsensitive (mk) import Data.Char (toUpper) import Data.Either.Combinators (mapLeft) import Data.Function (on)+import Data.Functor.Infix ((<$$>)) import Data.List (nubBy, intercalate, isPrefixOf) import Data.Maybe (catMaybes) import Data.Monoid (Monoid, (<>), mempty, mappend, mconcat)@@ -39,6 +41,7 @@ import GHC.TypeLits (Symbol, KnownSymbol, symbolVal) import Language.Haskell.TH.Quote (QuasiQuoter(..)) import Language.Haskell.TH (runQ)+import System.Directory (doesFileExist) import System.Environment (getEnvironment, getArgs, getProgName) import System.IO.Unsafe (unsafePerformIO) @@ -218,11 +221,14 @@ -- processes shell environment variables (with `getProgName` as -- prefix), and finally (3) processes command line args, turning -- @--config@ arguments into further recursive config file loads.+--+-- File path arguments are optiona; config paths to non-existent+-- files are silently dropped. defaultSources :: [FilePath] -> IO [Source] defaultSources filePaths = do-    let files = YamlFile <$> filePaths-    env  <- ShellEnv     <$> (getEnvironment >>= withShellEnvPrefix)-    args <- CommandLine  <$> getArgs+    files <- YamlFile   <$$> filterM doesFileExist filePaths+    env   <- ShellEnv    <$> (getEnvironment >>= withShellEnvPrefix)+    args  <- CommandLine <$> getArgs     return $ files ++ [env] ++ readUserConfigFiles [args]  -- | Require that all shell env variables start with executable name.