salak 0.1.5 → 0.1.6
raw patch · 4 files changed
+35/−2 lines, 4 files
Files
- README.md +1/−1
- salak.cabal +3/−1
- src/Data/Salak.hs +3/−0
- src/Data/Salak/Operation.hs +28/−0
README.md view
@@ -1,6 +1,6 @@ # salak -[](https://hackage.haskell.org/package/salak)+[](https://hackage.haskell.org/package/salak) [](https://travis-ci.org/leptonyu/salak)
salak.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: salak-version: 0.1.5+version: 0.1.6 license: BSD3 license-file: LICENSE copyright: (c) 2018 Daniel YU@@ -26,6 +26,7 @@ Data.Salak.CommandLine Data.Salak.Aeson Data.Salak.Yaml+ Data.Salak.Operation default-language: Haskell2010 ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans@@ -50,6 +51,7 @@ Data.Salak.Aeson Data.Salak.CommandLine Data.Salak.Environment+ Data.Salak.Operation Data.Salak.Types Data.Salak.Yaml Paths_salak
src/Data/Salak.hs view
@@ -39,12 +39,15 @@ , makePropertiesFromJson , makePropertiesFromYaml , FileName+ -- * Operations+ , module Data.Salak.Operation ) where import Data.Maybe import Data.Salak.Aeson import Data.Salak.CommandLine import Data.Salak.Environment+import Data.Salak.Operation import Data.Salak.Types import Data.Salak.Yaml import Data.Text (Text, unpack)
+ src/Data/Salak/Operation.hs view
@@ -0,0 +1,28 @@+module Data.Salak.Operation where++import Data.Salak.Types+import Data.Text (Text, unpack)++infixl 5 .?>+(.?>) :: FromProperties a => Properties -> Text -> Return a+(.?>) = flip lookup'++infixl 5 .|=+(.|=) :: Return a -> a -> a+(.|=) (OK a) _ = a+(.|=) (Fail e) _ = error e+(.|=) _ d = d++infixl 5 .?=+(.?=) :: Return a -> a -> Return a+(.?=) a b = OK (a .|= b)++infixl 5 .>>+(.>>) :: FromProperties a => Properties -> Text -> a+(.>>) p k = case p .?> k of+ OK v -> v+ Empty -> case fromProperties empty of+ (OK a) -> a+ (Fail e) -> error e+ _ -> error $ "Config " <> unpack k <> " not found"+ Fail e -> error e