aboutsummaryrefslogtreecommitdiff
path: root/Utility/Misc.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-08-29 18:51:22 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-08-29 19:13:00 -0400
commit7a53fb249f0c02762d8c13f413e24c5c250167dd (patch)
treeb612c5a8b9c630561ae1ff02dd8cd6c076881f19 /Utility/Misc.hs
parentd3c895b8b328685541cf41e025cff17f94b258b1 (diff)
refactor git-annex branch log filename code into central location
Having one module that knows about all the filenames used on the branch allows working back from an arbitrary filename to enough information about it to implement dropping dead remotes and doing other log file compacting as part of a forget transition.
Diffstat (limited to 'Utility/Misc.hs')
-rw-r--r--Utility/Misc.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/Utility/Misc.hs b/Utility/Misc.hs
index 804a9e487..48ce4c929 100644
--- a/Utility/Misc.hs
+++ b/Utility/Misc.hs
@@ -91,6 +91,12 @@ massReplace vs = go [] vs
go (replacement:acc) vs (drop (length val) s)
| otherwise = go acc rest s
+{- First item in the list that is not Nothing. -}
+firstJust :: Eq a => [Maybe a] -> Maybe a
+firstJust ms = case dropWhile (== Nothing) ms of
+ [] -> Nothing
+ (md:_) -> md
+
{- Given two orderings, returns the second if the first is EQ and returns
- the first otherwise.
-