summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-01-03 00:29:27 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-01-03 00:29:27 -0400
commitee554542c1f3ee63efe5533267cf9cd1e5c83d52 (patch)
treec5378041794d4a7faad6316e915cffb804e153d2
parent34abd7bca80a8cc012f92d64116014449b1b2392 (diff)
after is a better name for observe_
-rw-r--r--Remote/Git.hs8
-rw-r--r--Remote/Rsync.hs2
-rw-r--r--Utility/Monad.hs9
3 files changed, 9 insertions, 10 deletions
diff --git a/Remote/Git.hs b/Remote/Git.hs
index 2e32ca239..7d034d242 100644
--- a/Remote/Git.hs
+++ b/Remote/Git.hs
@@ -182,7 +182,7 @@ onLocal r a = do
-- No need to update the branch; its data is not used
-- for anything onLocal is used to do.
Annex.BranchState.disableUpdate
- observe_ (liftIO Git.Command.reap) a
+ liftIO Git.Command.reap `after` a
keyUrls :: Git.Repo -> Key -> [String]
keyUrls r key = map tourl (annexLocations key)
@@ -217,9 +217,9 @@ copyToRemote r key
-- run copy from perspective of remote
liftIO $ onLocal r $ do
ensureInitialized
- observe_ Annex.Content.saveState $
- Annex.Content.getViaTmp key $
- rsyncOrCopyFile params keysrc
+ Annex.Content.saveState `after`
+ Annex.Content.getViaTmp key
+ (rsyncOrCopyFile params keysrc)
| Git.repoIsSsh r = do
keysrc <- inRepo $ gitAnnexLocation key
rsyncHelper =<< rsyncParamsRemote r False key keysrc
diff --git a/Remote/Rsync.hs b/Remote/Rsync.hs
index 1461b96cd..c7b60467c 100644
--- a/Remote/Rsync.hs
+++ b/Remote/Rsync.hs
@@ -172,7 +172,7 @@ withRsyncScratchDir a = do
let tmp = t </> "rsynctmp" </> show pid
nuke tmp
liftIO $ createDirectoryIfMissing True tmp
- observe_ (nuke tmp) (a tmp)
+ nuke tmp `after` a tmp
where
nuke d = liftIO $
doesDirectoryExist d >>? removeDirectoryRecursive d
diff --git a/Utility/Monad.hs b/Utility/Monad.hs
index 7f9c7b1bc..be48072cb 100644
--- a/Utility/Monad.hs
+++ b/Utility/Monad.hs
@@ -29,14 +29,13 @@ anyM p = liftM isJust . firstM p
untilTrue :: (Monad m) => [a] -> (a -> m Bool) -> m Bool
untilTrue = flip anyM
-{- Runs a monadic action, passing its value to an observer
- - before returning it. -}
+{- Runs an action, passing its value to an observer before returning it. -}
observe :: (Monad m) => (a -> m b) -> m a -> m a
observe observer a = do
r <- a
_ <- observer r
return r
-{- Like observe, but the observer is not passed the value. -}
-observe_ :: (Monad m) => m b -> m a -> m a
-observe_ observer = observe (const observer)
+{- b `after` a runs first a, then b, and returns the value of a -}
+after :: (Monad m) => m b -> m a -> m a
+after = observe . const