summaryrefslogtreecommitdiff
path: root/Seek.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Seek.hs')
-rw-r--r--Seek.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/Seek.hs b/Seek.hs
index 7f74f6728..b2782fc36 100644
--- a/Seek.hs
+++ b/Seek.hs
@@ -141,13 +141,15 @@ withNothing _ _ = error "This command takes no parameters."
withKeyOptions :: (Key -> CommandStart) -> CommandSeek -> CommandSeek
withKeyOptions keyop fallbackop params = do
bare <- fromRepo Git.repoIsLocalBare
- allkeys <- Annex.getFlag "all" <||> pure bare
+ allkeys <- Annex.getFlag "all"
unused <- Annex.getFlag "unused"
auto <- Annex.getState Annex.auto
- case (allkeys , unused, auto ) of
+ case (allkeys || bare , unused, auto ) of
(True , False , False) -> go loggedKeys
(False , True , False) -> go unusedKeys
- (True , True , _ ) -> error "Cannot use --all with --unused."
+ (True , True , _ )
+ | bare && not allkeys -> go unusedKeys
+ | otherwise -> error "Cannot use --all with --unused."
(False , False , _ ) -> fallbackop params
(_ , _ , True )
| bare -> error "Cannot use --auto in a bare repository."