diff options
author | Joey Hess <joey@kitenet.net> | 2013-08-29 18:51:22 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-08-29 19:13:00 -0400 |
commit | 7a53fb249f0c02762d8c13f413e24c5c250167dd (patch) | |
tree | b612c5a8b9c630561ae1ff02dd8cd6c076881f19 /Utility | |
parent | d3c895b8b328685541cf41e025cff17f94b258b1 (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')
-rw-r--r-- | Utility/Misc.hs | 6 |
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. - |