aboutsummaryrefslogtreecommitdiff
path: root/Command/Find.hs
blob: 47058fa2571c99bded9148f45f0133a63f4eb79a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{- git-annex command
 -
 - Copyright 2010 Joey Hess <joey@kitenet.net>
 -
 - Licensed under the GNU GPL version 3 or higher.
 -}

module Command.Find where

import Common.Annex
import Command
import Annex.Content
import Limit
import qualified Annex

def :: [Command]
def = [command "find" paramPaths seek "lists available files"]

seek :: [CommandSeek]
seek = [withFilesInGit $ whenAnnexed start]

start :: FilePath -> (Key, Backend Annex) -> CommandStart
start file (key, _) = do
	-- only files inAnnex are shown, unless the user has requested
	-- others via a limit
	whenM (liftM2 (||) (inAnnex key) limited) $ do
		print0 <- Annex.getState Annex.print0
		if print0
			then liftIO $ putStr (file ++ "\0")
			else liftIO $ putStrLn file
	stop