shell-monad 0.6.5 → 0.6.6
raw patch · 3 files changed
+23/−11 lines, 3 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- CHANGELOG +6/−0
- Control/Monad/Shell.hs +16/−10
- shell-monad.cabal +1/−1
CHANGELOG view
@@ -1,3 +1,9 @@+shell-monad (0.6.6) unstable; urgency=medium++ * Improvements to build with base-4.12 (MonadFail).++ -- Joey Hess <id@joeyh.name> Mon, 29 Oct 2018 12:32:56 -0400+ shell-monad (0.6.5) unstable; urgency=medium * Fix some documentation typos.
Control/Monad/Shell.hs view
@@ -142,7 +142,10 @@ deriving (Eq, Ord, Show) simpleVar :: forall a. VarName -> Term Var a-simpleVar name = VarTerm V+simpleVar = VarTerm . simpleVar'++simpleVar' :: VarName -> UntypedVar+simpleVar' name = V { varName = name -- Used to expand the variable; can be overridden for other -- types of variable expansion.@@ -604,16 +607,19 @@ -- some shell script that is guaranteed to clobber any existing value of -- the variable. newVarUnsafe :: (NameHinted namehint) => forall a. namehint -> Script (Term Var a)-newVarUnsafe = hinted $ \namehint -> Script $ \env ->- let v = go namehint env (0 :: Integer)- in ([], modifyEnvVars env (S.insert (VarName (getName v))), v)+newVarUnsafe hint = VarTerm <$> newVarUnsafe' hint++newVarUnsafe' :: (NameHinted namehint) => namehint -> Script UntypedVar+newVarUnsafe' = hinted $ \namehint -> Script $ \env ->+ let name = go namehint env (0 :: Integer)+ in ([], modifyEnvVars env (S.insert name), simpleVar' name) where go namehint env x- | S.member (VarName (getName v)) (envVars env) =+ | S.member name (envVars env) = go namehint env (succ x)- | otherwise = v+ | otherwise = name where- v = simpleVar $ VarName $ "_"+ name = VarName $ "_" <> genvarname namehint <> if x == 0 then "" else L.pack (show (x + 1)) @@ -683,9 +689,9 @@ -- any quotes, so that it can be used inside an arithmetic expression. funcVar :: forall a b. Term Var a -> (L.Text -> L.Text) -> Script (Term Var b) funcVar orig transform = do- tmp@(VarTerm internal) <- newVarUnsafe shortname :: Script (Term Var ())- f <- mkFunc tmp- return $ VarTerm $ internal+ v <- newVarUnsafe' shortname+ f <- mkFunc (VarTerm v)+ return $ VarTerm $ v { expandVar = \env _ -> Q $ "$(" <> toLinearScript (fst (runScript env f)) <> ")" }
shell-monad.cabal view
@@ -1,5 +1,5 @@ Name: shell-monad-Version: 0.6.5+Version: 0.6.6 Cabal-Version: >= 1.8 License: BSD3 Maintainer: Joey Hess <id@joeyh.name>